mysq- Abfrage: zwei Einträge in Kreuztabelle

tecla

Erfahrenes Mitglied
Salut zusammen

Ich habe eine Tabelle 'partner' eine Tabelle 'gruppe' und eine Kreuztabelle 'partner2gruppe' in der vereinfachten Darstellung:

partner
---------
id_partner
name


gruppe
---------
id_gruppe
gruppe


partner2gruppe
---------------------
id_partner
id_gruppe


Nun suche ich die Partner die sowohl in der Gruppe 'Kunden', als auch in der Gruppe 'Familie' sind.

Ich habe jetzt folgende Abfrage, die auch funktioniert, bei der ich mich jedoch frage, ob das nicht auch eleganter zu lösen ist:

Code:
SELECT p.* 
FROM partner p, partner2gruppe pg1, gruppe g1, partner2gruppe pg2, gruppe g2
WHERE p.id_partner = pg1.id_partner
AND pg1.id_gruppe = g1.id_gruppe
AND g1.gruppe = 'Kunden'
AND p.id_partner = pg2.id_partner
AND pg2.id_gruppe = g2.id_gruppe
AND g2.gruppe = 'Familie'

Tipps sind herzlich willkommen!

Grüsse, Tecla
 
Hi,

join die Tabellen nur einfach, schränke auf gruppe IN ('Kunden', 'Familie') ein, gruppiere das nach partner_id und wähle per HAVING-Klausel nur die aus, die 2 Einträge haben.

LG
 
Zurück