Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
60-database:sql [2019/03/09 03:19] – Roge | 60-database:sql [2019/11/29 11:16] (Version actuelle) – [Group by ... Having] Roge | ||
---|---|---|---|
Ligne 7: | Ligne 7: | ||
^Cas^Exemple^ | ^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;| | |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 (OUTER) |
- | |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;| | + | |LEFT (OUTER) |
- | |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 |
- | |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;| | + | |RIGHT |
- | |FULL JOIN: \\ L' | + | |FULL (OUTER) |
- | |FULL JOIN sans intersection: | + | |FULL (OUTER) |
Illustrations : | Illustrations : | ||
[[http:// | [[http:// | ||
- | |||
- | ou | ||
[[https:// | [[https:// | ||
+ | ===== Group by ... Having ===== | ||
+ | |||
+ | Exemple : Chaque élément de A peut être en relation avec N éléments de B | ||
+ | |||
+ | <code bash> | ||
+ | Select A.id, count(b.id) FROM A | ||
+ | INNER JOIN B on A.bID = B.id | ||
+ | WHERE ... | ||
+ | GROUP BY A.id | ||
+ | HAVING ... condition | ||
+ | </ | ||
+ | |||
+ | ===== A voir ===== | ||
+ | |||
+ | https:// | ||