НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
116 of 150 menu

Команда RIGHT JOIN

Команда RIGHT JOIN используется для объединения двух таблиц по условию связи между столбцами. Она возвращает все строки из правой таблицы и соответствующие строки из левой таблицы.

Связь обычно выполняется между первичным ключом одной таблицы и соответствующим внешним ключом другой таблицы. Если для строки правой таблицы не найдено соответствия в левой таблице, такая строка всё равно попадёт в результат, но значения столбцов левой таблицы будут равны NULL.

Таким образом, RIGHT JOIN гарантирует, что все записи правой таблицы будут присутствовать в результате, даже если связанные записи отсутствуют.

Синтаксис

SELECT table1.column_list, table2.column_list FROM table1 RIGHT JOIN table2 ON table1.column_name = table2.column_name

Таблицы для примеров

countries
id name
1 Belarus
2 Russia
3 Ukraine
cities
id name country_id
1 Minsk 1
2 Vitebsk 1
3 Moscow 2
4 Vladivostok 2
6 London NULL

Пример

Давайте выберем все страны и связанные с ними города, при этом страны без городов также будут включены в результат:

SELECT cities.id AS city_id, cities.name AS city_name, countries.id AS country_id, countries.name AS country_name FROM cities RIGHT JOIN countries ON countries.id = cities.country_id

Результат выполнения кода:

city_id city_name country_id country_name
1 Minsk 1 Belarus
2 Vitebsk 1 Belarus
3 Moscow 2 Russia
4 Vladivostok 2 Russia
NULL NULL 3 Ukraine

Пример

Давайте выберем страны с идентификатором больше или равным 2, включая страны без связанных городов:

SELECT countries.name AS country_name, cities.name AS city_name FROM cities RIGHT JOIN countries ON countries.id = cities.country_id WHERE countries.id >= 2

Результат выполнения кода:

country_name city_name
Russia Moscow
Russia Vladivostok
Ukraine NULL

Пример

Давайте найдём страны, у которых нет ни одного связанного города:

SELECT countries.name FROM cities RIGHT JOIN countries ON countries.id = cities.country_id WHERE cities.id IS NULL

Результат выполнения кода:

name
Ukraine

Смотрите также

  • JOIN,
    которая связывает таблицы по условию
  • LEFT JOIN,
    которая выбирает все строки левой таблицы
  • INNER JOIN,
    которая выбирает только совпадающие строки
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить