English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Метод использования и примеры SQL JOIN ключевого слова

Справочник по ключевым словам SQL

INNER JOIN

INNER JOIN команда возвращает строки из двух таблиц с совпадающими значениями.

以下SQL选择带有客户信息的所有订单:

SELECT Orders.OrderID, Customers.CustomerName FROM Orders
INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID;

Внимание:Если之间存在匹配 между столбцами, ключевое слово INNER JOIN выбирает все строки из двух таблиц. Если в таблице «Заказы (Orders)» есть записи, не соответствующие таблице «Клиенты (Customers)», то эти заказы не будут отображены!

Следующий SQL-запрос выбирает все заказы, содержащие информацию о клиентах и перевозчиках:

SELECT Orders.OrderID, Customers.CustomerName, Shippers.ShipperName
FROM ((Orders
INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID)
INNER JOIN Shippers ON Orders.ShipperID = Shippers.ShipperID);

LEFT JOIN

Команда LEFT JOIN возвращает все строки из левой таблицы и соответствующие строки из правой таблицы. Если совпадений нет,则在 результатах справа будет NULL.

Следующий SQL выбирает всех клиентов и все возможные заказы, которые они могут иметь:

 SELECT Customers.CustomerName, Orders.OrderID 
 FROM Customers
 LEFT JOIN Orders ON Customers.CustomerID = Orders.CustomerID
 ORDER BY Customers.CustomerName;

Внимание:Ключевое слово LEFT JOIN возвращает все записи левой таблицы (таблица клиентов Customers), даже если они не соответствуют в правой таблице (таблица заказов Orders).

RIGHT JOIN

Команда RIGHT JOIN возвращает все строки из правой таблицы и соответствующие записи из левой таблицы. Если совпадений нет,则在 результатах左侧 будет NULL.

Следующий SQL возвращает всех сотрудников и все возможные заказы, которые они могут сделать:

SELECT Orders.OrderID, Employees.LastName, Employees.FirstName
FROM Orders
RIGHT JOIN Employees ON Orders.EmployeeID = Employees.EmployeeID
ORDER BY Orders.OrderID;

Внимание:Ключевое слово RIGHT JOIN возвращает все записи правой таблицы (сотрудники Employees), даже если они не соответствуют в левой таблице (заказы Orders).

FULL OUTER JOIN

FULL OUTER JOIN возвращает все строки, если существует совпадение в левой или правой таблице.

Следующий SQL-запрос выбирает всех клиентов и все заказы:

SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
FULL OUTER JOIN  
ON Customers.CustomerID=Orders.CustomerID
ORDER BY Customers.CustomerName;

Внимание:FULL OUTER JOIN возвращает все строки из левой таблицы (Клиенты Customers) и все строки из правой таблицы (Заказы Orders). Если某些 строки в "Клиентах Customers" не имеют соответствия в "Заказах Orders", или если某些 строки в "Заказах Orders" не имеют соответствия в "Клиентах Customers", то эти строки также будут включены.

Справочник по ключевым словам SQL