SQL для начинающих (DML): Объединение таблиц INNER JOIN / JOIN (MySql), Урок 13!

Опубликовано: 31 Октябрь 2024
на канале: LessonFirst
15,849
189

Декартовое произведение - это есть отношение двух и более отношений, таких что, каждый кортеж одного отношения сопоставляется с каждым кортежем другого отношения.
Пусть будет две таблицы
таблица ролей.
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