6.2. Соединения
в правой таблице, тогда в результирующую строку вместо значений столбцов пра-
вой таблицы будут помещены значения NULL. Получается, что для строки из табли-
цы aircrafts, в которой значение атрибута aircraft_code равно 320, в таблице
routes нет ни одной строки с таким же значением этого атрибута. В результате при
выводе выборки в столбце a_code, взятом из таблицы aircrafts, будет значение
320, а в столбце r_code, взятом из таблицы routes, будет значение NULL. Этот стол-
бец включен в выборку лишь для повышения наглядности, в реальном запросе он не
нужен.
Обратите внимание, что параметром функции count является столбец из таблицы
routes, поэтому count и выдает число 0 для самолета с кодом 320. Если заменить
его на одноименный столбец из таблицы aircrafts, тогда count выдаст 1, что бу-
дет противоречить цели нашей задачи — подсчитать число рейсов, выполняемых на
самолетах каждого типа. Напомним, что если функция count в качестве параметра
получает не символ «∗», а имя столбца, тогда она подсчитывает число строк, в кото-
рых значение в этом столбце определено (не равно NULL).
Кроме левого внешнего соединения существует также и
правое внешнее соедине-
ние
— RIGHT OUTER JOIN.
В этом случае в качестве базовой выбирается таблица, имя которой указано справа от
предложения RIGHT OUTER JOIN, а механизм получения результирующих строк в слу-
чае, когда для строки базовой таблицы не находится пары во второй таблице, точно
такой же, как и для левого внешнего соединения. Как сказано в документации, пра-
вое внешнее соединение является лишь синтаксическим приемом, поскольку всегда
можно заменить его левым внешним соединением, поменяв при этом имена таблиц
местами.
Важно учитывать, что порядок следования таблиц в предложениях LEFT (RIGHT)
OUTER JOIN никак не влияет на порядок столбцов в предложении SELECT. В выше-
приведенном запросе мы написали
Достарыңызбен бөлісу: