Outils du site

Dire qu'il existe des gens qui préfèrent François Mauriac à Pierre Dac. Comment se peut-ce ? Si je devais écrire une biographie un jour, j'écrirais celle de Pierre Dac. Je voudrais tant expliquer aux cons et aux jeunes l'importance de cet homme (Pierre Dac) dans la pensé moderne. Pierre Dac est à l'esprit d'aujourdhui, ce que Charles Trenet est à la chanson. Merci Pierre Dac de nous avoir enfoncé tant de portes ! [San-Antonio]

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 (OUTER) 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 (OUTER) 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 (OUTER) JOIN:
L'ensemble des A ET des B
Select * FROM A
FULL JOIN B on A.bID = B.id;
FULL (OUTER) 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 : Chaque élément de A peut être en relation avec N éléments de B

Select A.id, count(b.id) FROM A 
INNER JOIN B on A.bID = B.id
WHERE ...
GROUP BY A.id
HAVING ... condition 
Dernière modification : 2019/04/28 19:40