Оператор SQL RIGHT JOIN осуществляет формирование таблицы из записей двух или нескольких таблиц. В операторе SQL RIGHT JOIN, как и в операторе SQL LEFT JOIN, важен порядок следования таблиц, так как от этого будет зависеть полученный результат. Алгоритм работы оператора следующий:
- Сначала происходит формирование таблицы внутренним соединением (оператор SQL INNER JOIN) левой и правой таблиц
- Затем, в результат добавляются записи левой таблицы не вошедшие в результат формирования таблицы внутренним соединением. Для них, соответствующие записи из левой таблицы заполняются значениями 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.