SQL Соединения
Соединение с SQL
Предложение JOIN используется для объединения строк из двух или более таблиц на основе связанного столбца между ними.
Рассмотрим выбор из таблицы "Orders":
| OrderID | CustomerID | OrderDate |
|---|---|---|
| 10308 | 2 | 1996-09-18 |
| 10309 | 37 | 1996-09-19 |
| 10310 | 77 | 1996-09-20 |
Затем посмотрите на выбор из таблицы "Customers":
| CustomerID | CustomerName | ContactName | Country |
|---|---|---|---|
| 1 | Alfreds Futterkiste | Maria Anders | Germany |
| 2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Mexico |
| 3 | Antonio Moreno Taquería | Antonio Moreno | Mexico |
Обратите внимание, что в столбце "Customers" в таблице "Orders" содержится ссылка на "клиент" в таблице "клиенты". Связь между двумя таблицами выше является столбцом "идентификатор".
Затем можно создать следующую инструкцию SQL (содержащую внутреннее соединение), которая выбирает записи, имеющие совпадающие значения в обеих таблицах:
Пример
SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
FROM Orders
INNER JOIN Customers ON Orders.CustomerID=Customers.CustomerID;
and it will produce something like this:
| OrderID | CustomerName | OrderDate |
|---|---|---|
| 10308 | Ana Trujillo Emparedados y helados | 9/18/1996 |
| 10365 | Antonio Moreno Taquería | 11/27/1996 |
| 10383 | Around the Horn | 12/16/1996 |
| 10355 | Around the Horn | 11/15/1996 |
| 10278 | Berglunds snabbköp | 8/12/1996 |
Различные типы соединений SQL
Вот различные типы соединений в SQL:
- (внутреннее) соединение: возвращает записи, имеющие совпадающие значения в обеих таблицах
- Левое (внешнее) соединение: возвращает все записи из левой таблицы и совпадающие записи из правой таблицы
- Правое (внешнее) соединение: возвращает все записи из правой таблицы и совпадающие записи из левой таблицы
- Полное (внешнее) соединение: возвращает все записи при совпадении в левой или правой таблице

