Mot-clé SQL JOIN
JOINTURE INTERNE
La INNER JOIN
commande renvoie les lignes dont les valeurs correspondent dans les deux tables.
Le SQL suivant sélectionne toutes les commandes avec des informations client :
Exemple
SELECT Orders.OrderID, Customers.CustomerName
FROM Orders
INNER JOIN
Customers ON Orders.CustomerID = Customers.CustomerID;
Remarque : Le mot clé INNER JOIN sélectionne toutes les lignes des deux tables tant qu'il existe une correspondance entre les colonnes. S'il y a des enregistrements dans la table "Commandes" qui n'ont pas de correspondance dans "Clients", ces commandes ne seront pas affichées !
L'instruction SQL suivante sélectionne toutes les commandes avec des informations sur le client et l'expéditeur :
Exemple
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);
JOINT GAUCHE
La LEFT JOIN
commande renvoie toutes les lignes de la table de gauche et les lignes correspondantes de la table de droite. Le résultat est NULL du côté droit, s'il n'y a pas de correspondance.
Le SQL suivant sélectionnera tous les clients et toutes les commandes qu'ils pourraient avoir :
Exemple
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
LEFT JOIN Orders
ON Customers.CustomerID = Orders.CustomerID
ORDER BY Customers.CustomerName;
Remarque : Le mot- LEFT JOIN
clé renvoie tous les enregistrements de la table de gauche (Clients), même s'il n'y a pas de correspondance dans la table de droite (Commandes).
JOINDRE À DROITE
La RIGHT JOIN
commande renvoie toutes les lignes de la table de droite et les enregistrements correspondants de la table de gauche. Le résultat est NULL du côté gauche, lorsqu'il n'y a pas de correspondance.
Le SQL suivant renverra tous les employés et toutes les commandes qu'ils auraient passées :
Exemple
SELECT Orders.OrderID, Employees.LastName, Employees.FirstName
FROM Orders
RIGHT JOIN Employees ON Orders.EmployeeID = Employees.EmployeeID
ORDER BY Orders.OrderID;
Remarque : Le mot- RIGHT JOIN
clé renvoie tous les enregistrements de la table de droite (Employés), même s'il n'y a pas de correspondance dans la table de gauche (Commandes).
JOINT EXTERNE COMPLET
La FULL OUTER JOIN
commande renvoie toutes les lignes lorsqu'il y a une correspondance dans le tableau de gauche ou le tableau de droite.
L'instruction SQL suivante sélectionne tous les clients et toutes les commandes :
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
FULL OUTER JOIN Orders
ON Customers.CustomerID=Orders.CustomerID
ORDER BY Customers.CustomerName;
Remarque : Le FULL OUTER JOIN
mot clé renvoie toutes les lignes de la table de gauche (Clients) et toutes les lignes de la table de droite (Commandes). S'il y a des lignes dans "Clients" qui n'ont pas de correspondance dans "Commandes", ou s'il y a des lignes dans "Commandes" qui n'ont pas de correspondance dans "Clients", ces lignes seront également répertoriées.