Les jointures internes, externes, croisées et qualifiées

Dans PostgreSQL, il existe plusieurs types de jointures très bien détaillés dans la documentation.

Une jointure croisée (cross join) créé le produit cartésien des deux tables. c'est-à-dire que pour chaque combinaison de ligne (ex : t1 CROSS JOIN t2) provenant de t1 et t2, la table jointe contiendra une ligne disposant de toutes les colonnes de t1 suivies par toutes les colonnes de t2.

Les autres jointures (FULL, RIGHT, LEFT, INNER JOIN) sont des jointures qualifiées.

Une jointure externe (OUTER) permet de faire en sorte que le résultat comprenne toutes les lignes des tables (ou d'au moins une des tables de la jointure), même s'il n'y a pas correspondance des lignes entre les différentes tables mise en œuvre dans la jointure. Le mot clef OUTER est optionnel avec LEFT, RIGHT, FULL (voir ci-dessous).

L'exemple ci-dessous (tiré de la formation sur les fichiers fonciers à laquelle on se rapportera pour des exemples d'utilisation) montre des exemples de différents types de jointure :

Conseilvisualisation des types de jointure (en anglais)

Ce site permet de générer un exemple de code SQL en fonction du type de résultat désiré...