В этом руководстве вы узнаете, как использовать предложение SQL Server RIGHT JOIN для запроса данных из двух таблиц.
Введение в предложение SQL Server RIGHT JOIN
RIGHT JOIN — это предложение оператора SELECT. Предложение RIGHT JOIN объединяет данные из двух или более таблиц.
Предложение RIGHT JOIN начинает выбирать данные из правой таблицы и сопоставлять их со строками из левой таблицы. RIGHT JOIN возвращает результирующий набор, включающий все строки в правой таблице, независимо от того, есть ли у них совпадающие строки из левой таблицы.
Если строка в правой таблице не имеет соответствующих строк из левой таблицы, столбец левой таблицы в результирующем наборе будет содержать пустые значения.
Ниже показан синтаксис предложения RIGHT JOIN:
SELECT select_list FROM T1 RIGHT JOIN T2 ON join_predicate;
В этом синтаксисе T1 — левая таблица, а T2 — правая таблица.
Обратите внимание, что RIGHT JOIN и RIGHT OUTER JOIN — это одно и то же. Ключевое слово OUTER необязательно.
Следующая диаграмма Венна иллюстрирует операцию RIGHT JOIN:
Пример ПРАВОГО СОЕДИНЕНИЯ SQL Server
Для демонстрации мы будем использовать таблицы sales.order_items и production.products из образца базы данных.
Следующий оператор возвращает все order_id из таблицы sales.order_items и название продукта из таблицы production.products:
SELECT product_name, order_id FROM sales.order_items o RIGHT JOIN production.products p ON o.product_id = p.product_id ORDER BY order_id;
Вот что получилось:
Запрос вернул все строки из таблицы production.products(правая таблица) и строки из таблицы sales.order_items(левая таблица). Если у продукта нет продаж, столбец order_id будет иметь значение null.
Чтобы получить продукты, по которым нет продаж, добавьте предложение WHERE к приведенному выше запросу, чтобы отфильтровать продукты, по которым есть продажи:
SELECT product_name, order_id FROM sales.order_items o RIGHT JOIN production.products p ON o.product_id = p.product_id WHERE order_id IS NULL ORDER BY product_name;
На следующем рисунке показан результат:
Следующая диаграмма Венна иллюстрирует приведенную выше операцию RIGHT JOIN:
В этом руководстве вы узнали, как использовать SQL Server RIGHT JOIN для запроса данных из двух таблиц.