yo Kalle,
wie du weiter unten geschrieben hast, kann ein besucher nur zu einer gruppe gehören oder gar keine. somit liegt eine 1:n beziehung vor und die tabelle besucher_zu_gruppen ist überflüssig. indem du die gruppen_id mit in die tabelle adressen mit rein nimmst, deckst du die beziehung ausreichend ab.
folglich würde sich dann auch die tabelle kontakte ändern, dort würde die gruppen_id rausfliegen.
je nachdem ob du dein design ändern willst oder nicht, sieht die abfrage entsprechend aus. wenn ich dein ziel richtig verstanden habe willst du abfragen: zeige mir für einen besucher alle seine gruppenmitglieder, die ebenfalls einen bestimmten aussteller besuchen wollen.
SELECT hier_die_gewünschten_spalten
FROM kontakte k
WHERE k.aussteller_id = $input_aussteller AND
(k.besucher_id= $input_aussteller OR k.id IN
(
SELECT k2.id
FROM kontakte k2
WHERE k2.gruppen_id = k.gruppen_id
AND k2.austeller_id = $input_aussteller
)
)
versuch das mal auf dein jetztiges datendesign anzuwenden. ich kann mich nur nicht mehr erinnern, ob du unterabfragen abfragen kannst, sprich mysql 4.1+ hast.
Ilja