Декартовое произведение - это есть отношение двух и более отношений, таких что, каждый кортеж одного отношения сопоставляется с каждым кортежем другого отношения.
Пусть будет две таблицы
таблица ролей.
1, admin
2, user
таблица юзеров
1, Ivan
2, Andrey
3, Nikita
Тогда декартовое произведение этих двух отношений будет следующим:
1, Ivan, 1, admin
1, Ivan, 2, user
2, Andrey, 1, admin
2, Andrey, 2, user
3, Nikita, 1, admin
3, Nikita, 1, user
Таким образом можно найти декартовое произведения трех и более отношений, где каждый кортеж сопоставляется с каждым кортежем остальных отношений.
Добавим таблицу стран.
1, Украина
2, США
3, Германия
4, Россия
5, Китай
И напишем декартовое произведение трех таблиц, роли, юзеры и страны. Т.к. у нас уже выше написано декартовое произведение юзеров и ролей, следовательно осталось сопоставить это отношение что получилось от юзеров и ролей с отношением стран:
1, Ivan, 1, admin, 1, Украина
1, Ivan, 1, admin, 2, США
1, Ivan, 1, admin, 3, Германия
1, Ivan, 1, admin, 4, Россия
1, Ivan, 1, admin, 5, Китай
1, Ivan, 2, user, 1, Украина
1, Ivan, 2, user, 2, США
1, Ivan, 2, user, 3, Германия
1, Ivan, 2, user, 4, Россия
1, Ivan, 2, user, 5, Китай
2, Andrey, 1, admin, 1, Украина
2, Andrey, 1, admin, 2, США
2, Andrey, 1, admin, 3, Германия
2, Andrey, 1, admin, 4, Россия
2, Andrey, 1, admin, 5, Китай
2, Andrey, 2, user, 1, Украина
2, Andrey, 2, user, 2, США
2, Andrey, 2, user, 3, Германия
2, Andrey, 2, user, 4, Россия
2, Andrey, 2, user, 5, Китай
3, Nikita, 1, admin, 1, Украина
3, Nikita, 1, admin, 2, США
3, Nikita, 1, admin, 3, Германия
3, Nikita, 1, admin, 4, Россия
3, Nikita, 1, admin, 5, Китай
3, Nikita, 1, user, 1, Украина
3, Nikita, 1, user, 2, США
3, Nikita, 1, user, 3, Германия
3, Nikita, 1, user, 4, Россия
3, Nikita, 1, user, 5, Китай
В данном случае в таблицах нет никакой связи между друг другом, которые должны быть, именно по этим связям, а точнее когда отталкиваемся от них и приходим к так называемым ключам, в таком случае сразу становится понятным каким образом связаны сущьности друг с другом и как отобрать именно корректные записи с помощью SQL конструкции ON.
Группа в ВК: vk.com/club74199947
Информация по комментариям в разработке