Синтаксис LEFT JOIN
SELECT — перечень полей или * FROM — таблица, из которой мы извлекаем все записи; LEFT JOIN — таблица, где мы извлекаем только совпадающие записи; on — условие объединения ON (т1.код=т2.код).
Синтаксис RIGHT JOIN
SELECT перечень полей или * FROM — мы извлекаем только совпадающие записи; RIGHT JOIN — таблица, из которой мы извлекаем все записи ON (т1.код=т2.код).
Итак, если мы используем правое объединение RIGHT JOIN, из правой таблицы от конструкции JOIN будут выбраны все записи, а из левой таблицы только совпадающие записи.
Если мы используем левое соединение LEFT JOIN, из левой таблицы от конструкции JOIN будут выбраны все записи, а из правой таблицы будут выбраны совпадающие записи.
Примеры правого и левого объединения таблиц
Выбрать все записи из MAN и только совпадающие из AUTO.
В данном примере таблица MAN находится слева, в запросе от JOIN из нее будут выбраны все записи. Из таблицы AUTO будут выбраны только совпадающие записи.
Рисунок 81. Объединение таблиц LEFT JOIN
Выбрать все записи из CITY и только совпадающие из MAN.
В данном примере таблица CITY находится справа от конструкции JOIN, из нее будут выбраны все записи, из таблицы MAN будут выбраны только совпадающие записи.
Рисунок 82. Объединение таблиц
Конструкцию JOIN можно также применять с оператором WHERE.
Пример такого применения: вывести все авто и автовладельцев старше 30 лет.
С помощью конструкции LEFT JOIN можно применить специальный фильтр, чтобы отсечь ненужные записи с помощью конструкции IS NOT NULL, IS NULL.
Обратите внимание, как используются псевдонимы в запросах с JOIN. Для конструкций, где связываются несколько таблиц, использование псевдонимов становится необходимым.
Какие еще типы объединений существуют в языке SQL?
Существуют объединения CROSS JOIN, FULL JOIN, они используются на практике достаточно редко, вы можете прочитать об этих типах объединений в документации.
Контрольные вопросы и задания для самостоятельного выполнения
1. Повторите самостоятельно примеры из данного шага.
2. Используя RIGHT JOIN, выберите все записи из CITY и только совпадающие из MAN.
3. Используя LEFT JOIN, выберите все записи из CITY и только совпадающие из MAN.
Шаг 31. Объединение нескольких таблиц, дополнительные условия и сортировка результатов
Для запросов с объединением нескольких таблиц также можно применить сортировку.
Рассмотрим результаты сортировки при объединении нескольких таблиц. Приведем несколько примеров подобных запросов.
При объединении таблиц сортировка данных также осуществляется с помощью операции ORDER BY.
Приведем несколько примеров использования сортировок.
Выведем на экран сведения: имя и фамилию человека (MAN) и название города (CITY), где проживает этот человек; отсортировать данные необходимо по количеству населения, в обратном порядке.
Рисунок 83. Результаты запроса с сортировкой
Вывести из запроса сведения о автомобиле из таблицы AUTO, из таблицы MAN: выводим имя, фамилию, марку, цвет автомобиля — отсортируем результаты запроса по цвету автомобиля.
Рисунок 84. Результаты запроса с сортировкой
Сортировка в запросе с объединением осуществляется по общему набору объединенных данных.
При сортировке данных с правым или левым объединением необходимо учитывать пустые значения колонок, по которым осуществляется сортировка.
Пример
Или обратная сортировка:
Можно ли сочетать сортировку в нескольких таблицах с фильтром WHERE?
Да, привожу пример запроса.
Контрольные вопросы и задания для самостоятельного выполнения
1. Повторите материалы данного шага.
2. Объедините таблицы AUTO, CITY, MAN; выведите следующие данные: марка автомобиля, цвет, имя владельца и город, где проживает владелец; отсортируйте результаты по колонке «название города».
3. Объедините таблицы AUTO, MAN; выведите следующие данные: марка автомобиля, цвет, имя владельца; отсортируйте результаты по колонке «марка автомобиля», «цвет автомобиля» в обратном порядке.
4. Объедините таблицы CITY, MAN; выведите следующие данные: название города, имя; отсортируйте результаты по колонке «название города», используя левое объединение LEFT JOIN.
Шаг 32. Группировка данных и агрегатные функции
Читать дальше
Конец ознакомительного отрывка
Купить книгу