MySQL rejoint
Tables de jointure MySQL
Une JOIN
clause est utilisée pour combiner des lignes de deux tables ou plus, en fonction d'une colonne liée entre elles.
Examinons une sélection du tableau "Commandes" :
OrderID | CustomerID | OrderDate |
---|---|---|
10308 | 2 | 1996-09-18 |
10309 | 37 | 1996-09-19 |
10310 | 77 | 1996-09-20 |
Ensuite, regardez une sélection du tableau "Clients":
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 |
Notez que la colonne "CustomerID" dans la table "Orders" fait référence au "CustomerID" dans la table "Customers". La relation entre les deux tables ci-dessus est la colonne "CustomerID".
Ensuite, nous pouvons créer l'instruction SQL suivante (qui contient un
INNER JOIN
), qui sélectionne les enregistrements dont les valeurs correspondent dans les deux tables :
Exemple
SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
FROM Orders
INNER JOIN Customers ON Orders.CustomerID=Customers.CustomerID;
et cela produira quelque chose comme ceci:
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 |
Types de jointures pris en charge dans MySQL
INNER JOIN
: renvoie les enregistrements dont les valeurs correspondent dans les deux tablesLEFT JOIN
: renvoie tous les enregistrements de la table de gauche et les enregistrements correspondants de la table de droiteRIGHT JOIN
: renvoie tous les enregistrements de la table de droite et les enregistrements correspondants de la table de gaucheCROSS JOIN
: renvoie tous les enregistrements des deux tables