FULL JOIN - возвращает строки, когда есть хоть одно совпадение в любой из таблиц.
Синтаксис SQL FULL JOIN
Пример SQL FULL 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 |
| Svendson | Tove | |
| 34764 |
SQL Full Join





Комментарии
FROM table_name1
FULL JOIN table_name2
ON table_name1.column_name=table_name2.column_name
- это все понятно! а если мне нужно выбирать не из 2х таблиц, а из 3,4,5,6 … какой синтаксис, как писать from…!? Цитировать
SELECT column_name(s)
FROM table_name1
FULL JOIN table_name2
ON table_name1.column_name1=table_name2.column_name1
FULL JOIN table_name3
ON table_name1.column_name2=table_name3.column_name2
вообщем 4 таблицы в одном запросе причем вызов идет по разным колонкам и вообще связкой из 2 и 3 таблицы типа
FULL JOIN table_name2
ON table_name2.column_name=table_name3.column_name Цитировать
Cross Join возвращает все возможные сочетания каждой строки с каждой. В данном случае при использовании Cross Join, запрос вернул бы 3х5=15 строк Цитировать