Оператор SQL RIGHT JOIN


Оператор SQL RIGHT JOIN осуществляет формирование таблицы из записей двух или нескольких таблиц. В операторе SQL RIGHT JOIN, как и в операторе SQL LEFT JOIN, важен порядок следования таблиц, так как от этого будет зависеть полученный результат. Алгоритм работы оператора следующий:

  1. Сначала происходит формирование таблицы внутренним соединением (оператор SQL INNER JOIN) левой и правой таблиц
  2. Затем, в результат добавляются записи левой таблицы не вошедшие в результат формирования таблицы внутренним соединением. Для них, соответствующие записи из левой таблицы заполняются значениями NULL.

Оператор SQL RIGHT JOIN имеет следующий синтаксис:

SELECT
    column_names [,... n]
FROM
    Table_1 RIGHT JOIN Table_2 ON condition

Примеры оператора SQL RIGHT JOINИмеются две таблицы:

Authors — содержит в себе информацию об авторах книг:

AuthorID AuthorName
1 Bruce Eckel
2 Robert Lafore
3 Andrew Tanenbaum

Books — содержит в себе информацию о названии книг:

BookID BookName
3 Modern Operating System
1 Thinking in Java
3 Computer Architecture
4 Programming in Scala

В таблице Books поле BookID являются внешним ключом и ссылаются на таблицу Authors.

Пример 1. С помощью оператора SQL RIGHT JOIN вывести авторов всех книг:

SELECT * FROM Authors
RIGHT JOIN Books ON Authors.AuthorID = Books.BookID

Результирующая таблица будет выглядеть следующим образом:

Authors.AuthorID Authors.AuthorName Books.BookID Books.BookName
3 Andrew Tanenbaum 3 Modern Operating System
1 Bruce Eckel 1 Thinking in Java
3 Andrew Tanenbaum 3 Computer Architecture
NULL NULL 4 Programming in Scala

Информация об авторе книги Programming in Scala отсутствует в таблице Authors, поэтому соответствующие значения заменены NULL.