Outils du site

() Il se dessine de façon tangible, dans votre génération qui monte, mon camarade, une espèce d'ambition glacée d'arriver par le fric et un mépris cynique de tous les idéaux assez peu compatible avec l'idée qu'on se fait de la jeunesse éternelle génératrice de fougues irréfléchies et de colères gratuites. [Pierre Desproges]

60-database:sql

Ceci est une ancienne révision du document !


SQL

Jointures

Soit deux tables A et B :

CasExemple
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

https://sql.sh/2401-sql-join-infographie

Group by ... Having

Exemple :

Select A.id, count(b.id) FROM A 
INNER JOIN B on A.bID = B.id
GROUP BY A.id
HAVING ... condition 
Dernière modification : 2019/03/30 07:37