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 JOIN
renvoie 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.
Laisser un commentaire