Requête Sur trois Tables
Bonjour,
Je travaille avec trois tables l'une d'entre elles est une table association pour les deux autres
contacts
groups
contact_group (table association)
Je veux faire une requête pour afficher les contacts qui ne sont pas dans un groupe donné (group_id=2) par exemple et les contacts qui n'ont aucun groupe
Merci a tous
Je travaille avec trois tables l'une d'entre elles est une table association pour les deux autres
contacts
groups
contact_group (table association)
Je veux faire une requête pour afficher les contacts qui ne sont pas dans un groupe donné (group_id=2) par exemple et les contacts qui n'ont aucun groupe
Merci a tous
1 réponse
-
ModérateurBonjour
Un jointure left (enfin 2)
Et un where
Et le tour est joué
Cordialement,
Jordane-
ModérateurUn truc du genre
Pas dans le groupe 2
SELECT C.* FROM contact_group CG LEFT JOIN contacts C ON C.id = CG.id_contact WHERE CG.group_id <> 2
Ou ceux qui Sont dans un groupe mais dans le 2SELECT C.* FROM contact_group CG LEFT JOIN contacts C ON C.id = CG.id_contact WHERE CG.group_id <> 2 AND CG.group_id IS NOT NULL
Dans aucun groupe
SELECT C.* FROM contacts C LEFT JOIN contact_group CG ON C.id = CG.id_contact WHERE CG.group_id IS NULL
Ou encore avec une sous-requêteSELECT C.* FROM contacts C WHERE id NOT IN ( SELECT DISTINCT id_contact FROM contact_group )
-
@jordane45Merci pour la réponse
Mais Comment puis combiner les deux requêtes
"pas dans le groupe 2" et "dans aucun groupe"
Merci a tous... -
Contributeur@tallest17bonjour, suggestion:
SELECT C.* FROM contact_group CG RIGHT JOIN contacts C ON C.id = CG.id_contact WHERE CG.group_id <> 2 OR CG.group_id IS NULL
-
Modérateur@tallest17Heu....
Si dans aucun groupe ... alors ... forcément il n'est pas dans le groupe 2 .... cqfd ! -
Modérateur@yg_beSi CG.group_id IS NULL ... alors il est FORCEMENT différent de 2 :-)
-