Aller au contenu principal

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 width:100px
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;

Test de mémorisation/compréhension


Qu'est-ce qu'une jointure FULL JOIN en SQL ?


Quelle est la différence entre FULL JOIN et LEFT JOIN ?


Qu'arrive-t-il si un livre n'est attribué à aucun genre avec une jointure FULL JOIN entre les tables 'livre' et 'genre' ?


Qu'arrive-t-il si un genre n'a pas de livre avec une jointure FULL JOIN entre les tables 'livre' et 'genre' ?


Est-ce que MariaDB et MySQL supportent la jointure FULL JOIN ?