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

SQL JOIN 关键字使用方法及示例

SQL Keyword Reference

INNER JOIN

INNER JOIN命令返回两个表中具有匹配值的行。

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

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

Note:Tant que des éléments correspondants existent entre les colonnes, la clé FOREIGN JOIN INNER sélectionne toutes les lignes des deux tables. Si il y a des enregistrements non correspondants dans la table 'Commandes (Orders)' et la table 'Clients (Customers)', ces commandes ne seront pas affichées !

La requête SQL suivante sélectionne toutes les commandes contenant des informations sur les clients et les transporteurs :

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

La commande LEFT JOIN retourne toutes les lignes de la table de gauche et les lignes correspondantes de la table de droite. Si il n'y a pas de correspondance, les résultats de la droite sont NULL.

La requête SQL suivante sélectionne tous les clients ainsi que toutes les commandes qu'ils pourraient posséder :

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

Note:La clé FOREIGN JOIN LEFT retourne toutes les lignes de la table de gauche (Table des clients Customers), même si il n'y a pas de correspondance dans la table de droite (Table des commandes Orders).

RIGHT JOIN

La commande RIGHT JOIN retourne toutes les lignes de la table de droite et les enregistrements correspondants de la table de gauche. Si il n'y a pas de correspondance, les résultats de la gauche sont NULL.

La requête SQL suivante retourne tous les employés ainsi que toutes les commandes qu'ils pourraient avoir passées :

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

Note:La clé FOREIGN JOIN RIGHT retourne toutes les enregistrements de la table de droite (Employés Employees), même si il n'y a pas de correspondance dans la table de gauche (Commandes Orders).

FULL OUTER JOIN

FULL OUTER JOIN retourne toutes les lignes lorsque des éléments correspondants existent dans la table de gauche ou la table de droite.

La requête SQL suivante sélectionne tous les clients et toutes les commandes :

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

Note:The FULL OUTER JOIN keyword returns all rows from the left table (Customers), as well as all rows from the right table (Orders). If some rows in 'Customers' do not have a match in 'Orders', or if some rows in 'Orders' do not have a match in 'Customers', these rows will also be listed.

SQL Keyword Reference