résumé: dans ce tutoriel, vous découvrirez la clause SQL Server LEFT JOIN et comment l’utiliser pour interroger les données de plusieurs tables.

introduction à la clause SQL Server LEFT JOIN

la clauseLEFT JOIN vous permet d’interroger les données de plusieurs tables. Il renvoie toutes les lignes de la table de gauche et les lignes correspondantes de la table de droite. Si aucune ligne correspondante ne se trouve dans la table de droite, NULL sont utilisés.,

ce qui suit illustre comment joindre deux tables T1 et T2 en utilisant la clauseLEFT JOIN:

Code language: SQL (Structured Query Language) (sql)

dans cette syntaxe, T1 et T2 sont respectivement les tables gauche et droite.

Pour chaque ligne de la table T1, la requête compare avec toutes les lignes du tableau T2. Si une paire de lignes provoque l’évaluation du prédicat de jointure à TRUE, les valeurs de colonne de ces lignes seront combinées pour former une nouvelle ligne qui sera ensuite incluse dans le jeu de résultats.,

Si une ligne de la table de gauche (T1) n’a pas de ligne correspondante de la table T2, la requête combine les valeurs de colonne de la ligne de la table de gauche avecNULL pour chaque valeur de colonne de la table de droite.

en bref, la clauseLEFT JOINrenvoie toutes les lignes de la table de gauche (T1) et les lignes correspondantes ouNULL les valeurs de la table de droite (T2).

ce qui suit illustre leLEFT JOIN de deux tables T1(1, 2, 3) et T2(A, B, C)., Le LEFT JOIN fera correspondre les lignes de la table T1 avec les lignes de la table T2 en utilisant des modèles:

dans cette illustration, aucune ligne de la table T2 ne correspond la ligne 1 de la table t1, par conséquent, NULL est utilisée. Les lignes 2 et 3 de la table T1 correspondent respectivement aux lignes A et B de la table T2.,

SQL Server LEFT JOIN exemple

Voir la suite products et order_items tables:

Chaque poste de commande comprend un seul produit. Le lien entre la balise order_items et le products tables est le product_id colonne.,

L’instruction suivante utilise la balise LEFT JOIN clause d’interroger les données de la balise products et order_items tables:

Comme vous le voyez clairement à partir de l’ensemble de résultats, une liste de NULL dans le order_id colonne indique que les produits ne sont pas vendus à un client.

Il est possible d’utiliser la clauseWHERE pour limiter le jeu de résultats., La requête suivante renvoie les produits qui n’apparaissent dans aucune commande client:

Comme toujours, SQL Server traite la clause WHERE après la clause iv il n’y a pas de problème.,

The following example shows how to join three tables: production.products, sales.orders, and sales.order_items using the LEFT JOIN clauses:

Here is the output:

SQL Server LEFT JOIN: conditions in ON vs., Clause where

La requête suivante trouve le des produits qui appartiennent à l’ordre des id 100:

passons la condition order_id = 100 à la balise ON l’article:

La requête a retourné tous les produits, mais seulement de l’ordre avec l’id 100 a associé le produit de l’information.,

Notez que pour le INNER JOIN clause, la condition dans le ON l’article est fonctionnellement équivalent si elle est placée dans la balise WHERE clause.

dans ce tutoriel, vous avez appris à utiliser la clause SQL Server LEFT JOIN pour récupérer les données de plusieurs tables associées.