{MySQL} Filtrage sur Group By ?

Résolu/Fermé
kalimbra Messages postés 469 Date d'inscription samedi 22 mars 2008 Statut Membre Dernière intervention 7 octobre 2014 - 8 avril 2010 à 10:26
kalimbra Messages postés 469 Date d'inscription samedi 22 mars 2008 Statut Membre Dernière intervention 7 octobre 2014 - 9 avril 2010 à 07:58
bonjour,

j'ai une table de liaison entre une table de groupe et une table d'user. Je voudrais faire une requete sur cette table en la liant à ma table groupe. Je fais un group by pour n'afficher qu'une fois l'intitulé du groupe. Le problème est qu'il faudrait que je filtre ce group by par l'id du user .. est ce faisable en une seule requete ?

Le but étant d'afficher tout les groupes, mais de cocher ceux dont un user déterminé fait partie .

SELECT *, group_dld.id_group_dld AS idgroupe
FROM group_dld LEFT OUTER JOIN link_users_group_dld ON group_dld.id_group_dld = link_users_group_dld.id_group_dld
GROUP BY group_dld.id_group_dld


A voir également:

2 réponses

vlmath Messages postés 793 Date d'inscription vendredi 20 octobre 2006 Statut Contributeur Dernière intervention 4 septembre 2011 160
8 avril 2010 à 17:03
Salut,

T'as la condition "HAVING" qui est faite pour toi :D
Même syntaxe que WHERE mais qui sert à faire un tri après un group by (ou tout autre select) ...

Il se met tout à la fin.


Exemple:
SELECT Customer,SUM(OrderPrice) FROM Orders
GROUP BY Customer
HAVING SUM(OrderPrice)<2000
0
kalimbra Messages postés 469 Date d'inscription samedi 22 mars 2008 Statut Membre Dernière intervention 7 octobre 2014 72
9 avril 2010 à 07:58
j'avais essayé, mais ça ne fonctionne pas. du coup je n'ai plus tout les enregistrements de ma table 1

En cherchant j'ai fini par trouver en fait..

SELECT * , group_dld.id_group_dld AS idgroupe FROM group_dld
LEFT OUTER JOIN (SELECT * FROM link_users_group_dld WHERE link_users_group_dld.id_users_dld=6) link_users_group_dld on group_dld.id_group_dld = link_users_group_dld.id_group_dld
GROUP BY group_dld.intitule_group
ORDER BY group_dld.id_group_dld
0