Ceci est une ancienne révision du document !
Soit deux tables A et B :
Cas | Exemple |
---|---|
INNER JOIN: intersection des A et B (Tous les A et les B qui sont en relation) | Select * FROM A INNER JOIN B on A.bID = B.id; |
LEFT JOIN: tous les A qu'il aient ou non un B correspondant | Select * FROM A LEFT JOIN B on A.bID = B.id; |
LEFT JOIN exclusif: tous les A qui n'ont pas un B correspondant | Select * FROM A LEFT JOIN B on A.bID = B.id WHERE B.id IS NULL; |
RIGHT JOIN: tous les B qu'il aient ou non un A correspondant | Select * FROM A RIGHT JOIN B on A.bID = B.id; |
RIGHT JOIN exclusif: tous les B qui n'ont pas un A correspondant | Select * FROM A RIGHT JOIN B on A.bID = B.id WHERE A.Bid is null; |
FULL JOIN: L'ensemble des A ET des B | Select * FROM A FULL JOIN B on A.bID = B.id; |
FULL JOIN sans intersection: L'ensemble des A OU (exclusif) des B | Select * FROM A FULL JOIN B on A.bID = B.id WHERE A.bID IS NULL OR B.ID IS NULL; |
Illustrations :
http://cartman34.fr/informatique/sgbd/differences-entre-inner-left-right-et-outer-join-en-sql.html