FULL JOIN
4ème type de jointure "FULL JOIN"
La jointure FULL JOIN est également appelée FULL OUTER JOIN.
SELECT *
FROM livre AS T1
FULL JOIN genre AS T2
ON T1.id_genre = T2.id;
astuce
FULL JOIN = LEFT JOIN + INNER JOIN + RIGHT JOIN
remarque
Le FULL JOIN n'est actuellement pas supporté par MariaDB et MySQL.
Pour exécuter une jointure FULL JOIN avec MariaDB ou MySQL,
il suffit de faire une UNION des requêtes LEFT JOIN et RIGHT JOIN :
SELECT * FROM livre AS T1 LEFT JOIN genre AS T2 ON T1.id_genre = T2.id
UNION
SELECT * FROM livre AS T1 RIGHT JOIN genre AS T2 ON T1.id_genre = T2.id;
Dans notre exemple, la jointure FULL JOIN
retournera toutes les correspondances entre un livre et un genre, les livres sans genre et les genres sans livre !
SELECT * FROM livre AS T1 LEFT JOIN genre AS T2 ON T1.id_genre = T2.id
UNION
SELECT * FROM livre AS T1 RIGHT JOIN genre AS T2 ON T1.id_genre = T2.id;

Exercice
Bonne pratique - UNION élimine les doublons
UNION supprime automatiquement les lignes dupliquées (contrairement à UNION ALL).
C'est pourquoi LEFT JOIN + UNION + RIGHT JOIN simule correctement un FULL JOIN : les lignes avec correspondance dans les deux tables n'apparaissent qu'une seule fois.
Test de mémorisation/compréhension
Une solution
Vous devez être connecté pour voir le contenu.