6.2. Соединения
5B
| Economy
6A
| Economy
6B
| Economy
(12 строк)
Если подвести итог, то можно упрощенно объяснить механизм построения соедине-
ния следующим образом.
Сначала формируются все попарные комбинации строк из обеих таблиц, т. е. декар-
тово произведение множеств строк этих таблиц. Эти комбинированные строки вклю-
чают в себя все атрибуты обеих таблиц.
Затем в дело вступает условие s.aircraft_code = a.aircraft_code. Это означает,
что в результирующем множестве строк останутся только те из них, в которых значе-
ния атрибута aircraft_code, взятые из таблицы aircrafts и из таблицы seats,
одинаковые. Строки, не удовлетворяющие этому критерию, отфильтровываются.
Это означает на практике, что каждой строке из таблицы «Места» мы сопоставили
только одну конкретную строку из таблицы «Самолеты», из которой мы теперь мо-
жем взять значение атрибута «Модель самолета», чтобы включить ее в итоговый вы-
вод данных.
На практике описанный механизм не реализуется буквально. Специальная подсисте-
ма PostgreSQL, называемая планировщиком, строит план выполнения запроса, кото-
рый является гораздо более эффективным, чем упрощенный план, представленный
здесь. Детально вопросы планирования запросов рассматриваются в главе 10.
Запрос, который мы рассмотрели, можно записать немного по-другому, без исполь-
зования предложения JOIN (обратите внимание, что мы не использовали ключевое
слово AS для назначения псевдонимов таблицам).
Достарыңызбен бөлісу: