Exemple de syntaxe
SELECT order_items.id, orders.order_date, order_items.price
FROM order_items
LEFT OUTER JOIN orders
ON order_items.order_id = orders.id;
Les jointures (Joins) combinent les lignes de deux ou plusieurs tables en se basant sur une colonne commune.
Visualisation des jointures
SELECT * FROM `A` INNER JOIN `B`
┌────────┐
│ A ┌───┼────┐
│ │ ∩ │ │
└────┼───┘ B │
└────────┘
| Type de jointure | Données incluses | Description |
|---|---|---|
INNER JOIN |
∩ |
Renvoie les enregistrements ayant des valeurs correspondantes dans les deux tables |
LEFT OUTER JOIN |
A + ∩ |
Renvoie tous les enregistrements de la table A et les correspondances de la table B |
RIGHT OUTER JOIN |
∩ + B |
Renvoie tous les enregistrements de la table B et les correspondances de la table A |
FULL OUTER JOIN |
A + ∩ + B |
Renvoie tous les enregistrements dès qu'il y a correspondance à gauche ou à droite |
Variantes de jointures et filtres
Left Join excluant l'intersection
SELECT * FROM A
LEFT JOIN B ON A.key = B.key
WHERE B.key IS NULL;
Right Join excluant l'intersection
SELECT * FROM A
RIGHT JOIN B ON A.key = B.key
WHERE A.key IS NULL;
Full Outer Join excluant l'intersection
SELECT * FROM A
FULL OUTER JOIN B ON A.key = B.key
WHERE A.key IS NULL OR B.key IS NULL;