RIGHT JOIN - возвращает строки из правой таблицы(table_name2), даже если их нет левой таблице (table_name1).
Синтаксис SQL RIGHT JOIN
- Замечание: В некоторых базах данных RIGHT JOIN имеет имя RIGHT OUTER JOIN.
Пример SQL RIGHT JOIN
Есть таблица "Persons":
| P_Id | LastName | FirstName | Address | City |
|---|---|---|---|---|
| 1 | Hansen | Ola | Timoteivn 10 | Sandnes |
| 2 | Svendson | Tove | Borgvn 23 | Sandnes |
| 3 | Pettersen | Kari | Storgt 20 | Stavanger |
Есть таблица "Orders":
| O_Id | OrderNo | P_Id |
|---|---|---|
| 1 | 77895 | 3 |
| 2 | 44678 | 3 |
| 3 | 22456 | 1 |
| 4 | 24562 | 1 |
| 5 | 34764 | 15 |
Теперь мы хотим получить список всех лиц и их заказов из таблицы выше.
Для этого используем такой запрос:
Результат запроса:
| LastName | FirstName | OrderNo |
|---|---|---|
| Hansen | Ola | 22456 |
| Hansen | Ola | 24562 |
| Pettersen | Kari | 77895 |
| Pettersen | Kari | 44678 |
| 34764 |
SQL Right Join





Комментарии
А вообще, ресурс - прекрасен, автор - молодец! Цитировать
автор спасибо за примеры
было бы их еще побольше тогда вобще класс! Цитировать
Разве-что можно было бы ещё исключения описать… Цитировать
просто автор попутал LEFT JOIN и RIGHT JOIN
Я бы и для LEFT JOIN и для RIGHT JOIN задачу сформулировал одинаково:
Получить таблицу соответствия Закачиков (Persons) и Заказов, используя правое объединение и левое объединение.
В первом случае получаем результат:
Перечень всех заказчиков - вне зависимости есть у них заказы в таблице Заказы или нет.
В случае нескольких заказов у одного заказчика - именно столько будет строк с фамилией заказчика в результирующей таблице.
В случае, если для заказчика из таблицы Заказчиков (Persons) нет ни одного заказа - столбец с номером заказа - пустой, но сама фамилия и имя выводятся.
Заказчик без заказа - Потенциальный заказчик :) - Надо доработать сэйлзам
Во втором случае:
Перечень всех заказов - вне зависимости знаем ли мы (присутствует ли в таблице Persons) имена Заказчиков.
В связи с тем, что для некоторых заказов мы не знаем имени Заказчика, то хотя номер заказа и выводится - столбец имени заказчика остается пустым.
Заказ без Закачика - "Фиг знает кто заказал" :) Цитировать
Цитирую Kirill: Цитировать