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