du benötigst einen einfachen join.
da die GID in der beziehungstabelle enthalten ist (n:m), ist der join auf die tabellen kunden und beziehungen zu machen.
select kundentabelle.* from kundentabelle k inner join beziehungstabelle b on k.kid = b.kid
k.KID = FirmenID And (b.GID = 3 or b.GID = 7 or b.GID 11 Or b.GID 20).
zudem sollte gid und kid indiziert sein!
In dem Fall würde er ja für jeden Kunden bis zu 4 verschiedene Datensätze bekommen, je nachdem wie vielen Gruppen der Kunde zugehört und auch die Projektion des genannten Querys ist nicht mit dem zu vergleichen was er möchte...
Er wollte doch (oder täusch ich mich?) einen Datensatz pro Kunde/Firma mit 4 Felder in denen alle Gruppen drin sind mit 1 oder 0 für "Mitglied", "Nicht Mitglied"...
Also wenn das der Fall ist, ist die Lösung hier völlig falsch *g*
Die Indezes auf GID und KID sind ja eigentlich durch den Primärschlüssel gegeben...
Ich denk mal drüber nach und bastel dann was :o) (sofern ich nicht total falsch liege)
Gruss
Stefan