Оператор 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.