JOINTURE GAUCHE ET JOINTURE DROITE
JOINTURE GAUCHE
Une LEFT JOIN, également appelée LEFT OUTER JOIN, est un type d’opération SQL qui conserve toutes les lignes de la table de gauche (ou première table) de la requête, qu’il existe ou non une ligne correspondante dans la table de droite (ou seconde table).
Lorsqu’une correspondance est trouvée, les colonnes de la table de droite sont remplies avec les valeurs correspondantes. Toutefois, si aucune correspondance n’existe, le résultat inclut des valeurs Null dans les colonnes provenant de la table de droite.
Cette jointure est utile lorsque vous devez créer une liste complète à partir d’une table tout en ajoutant des données associées à partir d’une autre, même lorsque ces relations sont incomplètes ou absentes.
SELECT customers.customer_name, orders.order_id
FROM sales.customers AS customers
LEFT JOIN sales.orders AS orders ON customers.customer_id = orders.customer_id;
La requête SQL utilisant une LEFT JOIN extrait tous les clients de la table sales.customers, y compris ceux n’ayant aucune commande correspondante dans la table sales.orders. La clause ON spécifie que le champ customer_id lie les deux tables.
Pour les clients qui ont passé des commandes, l’order_id de la table orders s’affiche. Toutefois, si un client n’a pas de commande, le résultat inclut quand même le client, avec la colonne order_id affichant des valeurs Null.
JOINTURE DROITE
Une RIGHT JOIN, également appelée RIGHT OUTER JOIN, est une opération SQL qui garantit que toutes les lignes de la table de droite (ou seconde table) sont incluses dans le résultat, qu’il y ait ou non une ligne correspondante dans la table de gauche (ou première table).
Dans les cas où aucune correspondance n’est trouvée, les colonnes de la table de gauche affichent des valeurs Null.
Ce type de jointure est couramment utilisé pour se concentrer sur les données de la table de droite, tout en ajoutant des informations de la table de gauche lorsqu’il existe des relations.
SELECT customers.customer_name, orders.order_id
FROM sales.customers AS customers
RIGHT JOIN sales.orders AS orders ON customers.customer_id = orders.customer_id;
Cette requête récupère toutes les lignes de la table sales.orders, ce qui garantit que chaque commande est incluse dans le résultat, même s’il n’y a pas d’entrée associée dans la table sales.customers.
La clause ON spécifie la relation entre les deux tables via la colonne customer_id. Si une commande a un client correspondant, la colonne customer_name est renseignée avec le customer_name, et des valeurs Null sont affichées pour les enregistrements sans correspondance.