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




