Jointures

Réaliser des jointures

Principe d’une jointure : combiner les enregistrements d’une table avec les enregistrements d’une autre table en appliquant une règle de correspondance sur une colonne contenant des valeurs communes aux deux tables.

(Inner) join
Seuls les enregistrements ayant une existence dans les deux tables sont conservés. (type de jointure la plus courante)

Left (outer) join
Tous les enregistrements de la première table (table de gauche) sont conservés même s’ils n’ont pas de correspondance avec l’autre table.

Right (outer) join
Tous les enregistrements de la seconde table (table de droite) sont conservés même s’ils n’ont pas de correspondance avec la première table.

Full (outer) join
Une telle jointure donne à la fois les résultats d’une left outer join et d’une right outer join.

Cross join
Produit cartésien de tous les enregistrements d’une table avec tous les enregistrements de l’autre table. (type de jointure la moins utilisée)

INNER JOIN

Seuls les enregistrements ayant une existence dans les deux tables sont conservés. (type de jointure la plus courante)

SELECT schema1.table1.*, schema2.table2.*
FROM schema1.table1, schema2.table2
WHERE schema1.table1.colonne1 = schema2.table2.colonne2

ou

SELECT *
FROM schema1.table1
INNER JOIN schema2.table2
ON schema1.table1.colonne1 = schema2.table2.colonne2

LEFT JOIN

Tous les enregistrements de la première table (table de gauche) sont conservés même s’ils n’ont pas de correspondance avec l’autre table.

SELECT *
FROM schema1.table1
LEFT JOIN schema2.table2
ON schema1.table1.colonne1 = schema2.table2.colonne2

RIGHT JOIN

Tous les enregistrements de la seconde table (table de droite) sont conservés même s’ils n’ont pas de correspondance avec la première table.

SELECT *
FROM schema1.table1
RIGHT JOIN schema2.table2
ON schema1.table1.colonne1 = schema2.table2.colonne2

FULL JOIN

Une telle jointure donne à la fois les résultats d’une left outer join et d’une right outer join.

SELECT *
FROM schema1.table1
FULL JOIN schema2.table2
ON schema1.table1.colonne1 = schema2.table2.colonne2

CROSS JOIN

Produit cartésien de tous les enregistrements d’une table avec tous les enregistrements de l’autre table.

SELECT *
FROM schema1.table1, schema2.table2