Ho un problema con una query che spero possiate aiutarmi a risolvere.
In pratica questa è la mia situazione:
1) una tabella utenti con id, nome, email etc etc.
2) una tabella gruppi con id, nome gruppo etc.
3) una tabella utenti2gruppi che ha id_gruppo e id_utente
Un utente può appartenere ad 1 o più gruppi.
Voglio una query che mi restituisca tutti i gruppi e mi dica a quali gruppi appartiene un utente.
Ho scritto:
codice:
SELECT DISTINCT g.nome, (g.id=u2g.id_gruppo) AS ingroup
FROM gruppi AS g, utenti2gruppi AS u2g, utenti AS u
WHERE u.id=$id AND u2g.id_utente = u.id
(dove $id è l'id dell'utente).
Questa query funziona se l'utente appartiene ad un solo gruppo e mi restituisce ad es:
codice:
Gruppo 1 | 0
Gruppo 2 | 0
Gruppo 3 | 1
Gruppo 4 | 0
Se però l'utente appartiene a 2 o più gruppi mi da:
codice:
Gruppo 1 | 0
Gruppo 2 | 1
Gruppo 3 | 1
Gruppo 2 | 0
Gruppo 3 | 0
Gruppo 4 | 0
Qualcuno mi sa spiegare perchè e come aggirare il problema?
Grazie
nico