résumé: dans ce tutoriel, vous apprendrez à utiliser la clause PostgreSQLLEFT JOIN
pour sélectionner des données à partir de plusieurs tables.
Introduction à la clause de jointure gauche PostgreSQL
supposons que vous ayez deux tables:A
EtB
.,
Chaque ligne dans la table A
peut avoir zéro ou plusieurs lignes correspondantes dans la table B
alors que chaque ligne de la table B
a une et une seule ligne correspondante dans la table A
.
Pour sélectionner des données dans la table A
qui peut ou peut ne pas avoir les lignes correspondantes dans la table B
, vous utilisez la balise LEFT JOIN
clause.,
La déclaration suivante illustre la balise LEFT JOIN
syntaxe qui rejoint la table A
avec la table B
:
Code language: SQL (Structured Query Language) (sql)
Pour joindre la table A
avec la table B
table à l’aide d’une jointure gauche, suivre ces étapes:
- tout d’Abord, spécifiez les colonnes des deux tables à partir de laquelle vous souhaitez sélectionner des données dans le
SELECT
clause. - ensuite, spécifiez la table de gauche (tableau
A
) dans la baliseFROM
clause., - Troisièmement, spécifiez la bonne table (table
B
) dans la clauseLEFT JOIN
et la condition de jointure après le mot-cléON
.
la clauseLEFT JOIN
commence à sélectionner les données dans la table de gauche. Pour chaque ligne dans la table de gauche, il compare la valeur dans la balise pka
colonne avec la valeur de chaque ligne dans la balise fka
colonne dans le tableau de droite.,
Si ces valeurs sont égales, la clause LEFT join crée une nouvelle ligne contenant les colonnes qui apparaissent dans la clauseSELECT
et ajoute cette ligne au jeu de résultats.
si ces valeurs ne sont pas égales, la clause LEFT join crée également une nouvelle ligne contenant des colonnes qui apparaissent dans la clauseSELECT
. De plus, il remplit les colonnes qui proviennent de la table de droite avec NULL.,
Le diagramme de Venn suivant illustre la façon dont le LEFT JOIN
clause de travaux:
Notez que la balise LEFT JOIN
est aussi appelé LEFT OUTER JOIN
.
PostgreSQL LEFT JOIN examples
examinons les tablesfilm
Etinventory
de l’exemple de base de données.,
Chaque ligne dans la balise film
table peut avoir zéro ou plusieurs lignes dans le inventory
tableau. Chaque ligne dans la balise inventory
table a une et une seule ligne dans la balise film
tableau.
Le film_id
colonne établit le lien entre le film
et inventory
tables.,
L’instruction suivante utilise la balise LEFT JOIN
clause join film
table avec la balise inventory
table:
Lorsqu’une ligne de la balise film
table n’a pas de ligne correspondante dans la balise inventory
table, la valeur de la balise inventory_id
colonne de cette ligne est NULL
.,
L’instruction suivante ajoute un WHERE
clause de trouver les films qui ne sont pas dans l’inventaire:
La déclaration suivante renvoie le même résultat., La différence est qu’il utilise les alias de table pour rendre la requête plus concise:
Si les deux tables ont le même nom de colonne Utilisé dans le ON
clause, vous pouvez utiliser la syntaxe USING
comme ceci:
Cette technique est utile lorsque vous souhaitez sélectionner des lignes d’une table qui n’ont pas de lignes correspondantes dans une autre table.