Hallo zusammen,
ich hänge bei folgendem Problem:
5 Tabellen. Folgend eine vereinfachende Darstellung.
Tabelle A
a.id a.description
Tabelle B
b.id b. description
Tabelle C
c.id a.id. b.id description
Tabelle D (B und E sind in n:m Beziehung-> Zwischentabelle D)
b.id e.id
Ziel: Alle a.ids bei denen ALLE (und daran scheiterts) b.ids einem bestimmten e.id zugwiesen sind.
Beispiel Tabelle C
c.id a.id. b.id
1 1 1
2 1 2
3 1 3
Aber nur b.id 1 und 2 sind dem bestimmten Wert e.id zugewiesen.
Folgende Abfrage:
select distinct id from a
left join c on a.id =c.id_a
left join b on b.id = c.id_b
left join d on d.id_b = b.id
where d.id_b in (SELECT id_b from d where id_e = 'XXX');
Ergebnis: Auch a.id = 1, was klar ist weil ja c.id 1 und 2 das Kriterium erfüllen ..
Was ich benötige: So eine Art Schlüsselwort 'Zeige nur diejenige Elemente bei denen ALLE subelemente ein bestimmtes Kriterium erfüllen'
Ich hoffe echt es kann mir hier jemand weiterhelfen.
mfg
zerwi
ich hänge bei folgendem Problem:
5 Tabellen. Folgend eine vereinfachende Darstellung.
Tabelle A
a.id a.description
Tabelle B
b.id b. description
Tabelle C
c.id a.id. b.id description
Tabelle D (B und E sind in n:m Beziehung-> Zwischentabelle D)
b.id e.id
Ziel: Alle a.ids bei denen ALLE (und daran scheiterts) b.ids einem bestimmten e.id zugwiesen sind.
Beispiel Tabelle C
c.id a.id. b.id
1 1 1
2 1 2
3 1 3
Aber nur b.id 1 und 2 sind dem bestimmten Wert e.id zugewiesen.
Folgende Abfrage:
select distinct id from a
left join c on a.id =c.id_a
left join b on b.id = c.id_b
left join d on d.id_b = b.id
where d.id_b in (SELECT id_b from d where id_e = 'XXX');
Ergebnis: Auch a.id = 1, was klar ist weil ja c.id 1 und 2 das Kriterium erfüllen ..
Was ich benötige: So eine Art Schlüsselwort 'Zeige nur diejenige Elemente bei denen ALLE subelemente ein bestimmtes Kriterium erfüllen'
Ich hoffe echt es kann mir hier jemand weiterhelfen.
mfg
zerwi