English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Справочник по ключевым словам SQL
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 возвращает все строки из левой таблицы и соответствующие строки из правой таблицы. Если совпадений нет,则在 результатах справа будет 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 возвращает все строки из правой таблицы и соответствующие записи из левой таблицы. Если совпадений нет,则在 результатах左侧 будет 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 возвращает все строки, если существует совпадение в левой или правой таблице.
Следующий 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", то эти строки также будут включены.