ERLEDIGT
NEIN
NEIN
ANTWORTEN
5
5
ZUGRIFFE
526
526
EMPFEHLEN
-
08.10.08 15:36 #1
- Registriert seit
- Feb 2008
- Beiträge
- 6
Hallo,
ich stehe hier grad irgendwie total auf dem Schlauch.
Ich habe 3 Tabellen
Tabelle A:
a_id
a_bezeichnung
Tabelle B:
b_id
b_bezeichnung
und eine Zuordnungstabelle Z:
a_id
b_id
In Z sind den a_id jeweils mehrere b_id zugeordnet.
Ich komme jetzt einfach nicht drauf, wie die Abfrage aussehen muß, wenn ich alle a_id haben möchte, die allen übergebenen b_id zugeordnet sind.
liefert mir alle a_id in denen mindestens eine der b_id vorhanden ist.Code :1
select a_id from Z where b_id in (1, 2, 3) group by a_id
Wäre toll, wenn mir da mal einer auf die Sprünge helfen könnte.
Gruß Bastian
-
08.10.08 15:50 #2
Hallo Bastian,
wenn ich Dich richtig verstanden habe, dann suchst Du dies hier:
http://www.tutorials.de/forum/relati...-aber-wie.html

Gruß
KlausEs ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!
Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
-------------------------------------------------------------------------------------------------
Ich beantworte keine Fragen per PN !!
Stellt Eure Fragen im Forum - dann haben alle etwas davon !!
-
08.10.08 16:02 #3
- Registriert seit
- Feb 2008
- Beiträge
- 6
Hallo Klaus,
diesen Beitrag hatte ich schon gefunden. Leider hört es an der Stelle auf, an der es für mich interessant wird
Mal als Beispiel
Tabelle A sind Filme, Tabelle B Schauspieler. In Z sind jedem Film mehrere Schauspieler zugeordnet.
Ich möchte jetzt alle Filme, in denen Richard Gere und Julia Roberts mitspielen.
Gruß Bastian
-
Das und klingt ziemlich tricky. Ich wüsste nicht wie man das mit einer statischen Abfrage für eine beliebig große Menge an b's realisiert.
Für ne dynamische Abfrage fällt mir spontan die Schnittmenge ein.
SELECT a_id from Z Where b_id=1
INTERSECT
SELECT a_id from Z WHERE b_id=2
INTERSECT
SELECT a_id from Z WHERE b_id=3
-
09.10.08 09:00 #5
- Registriert seit
- Feb 2008
- Beiträge
- 6
Hallo,
der Tip mit dem INTERSECT war schon mal gar nicht schlecht. Danke
Ich habs jetzt folgendermaßen gemacht (geht etwas schneller)
Code :1
SELECT a_id FROM Z WHERE b_id IN (1,2,3) GROUP BY a_id HAVING COUNT(a_id) = 3
das funktioniert allerdings nur, weil ich die Anzahl der b_id kenne.
Gruß Bastian
-
Interessante Lösung. Klingt schneller und ist besser erweiterbar für mehr b's.
Ähnliche Themen
-
SQL-Abfrage m:n Beziehung
Von alkoholliger im Forum PHPAntworten: 6Letzter Beitrag: 15.04.09, 10:45 -
(Oracle 10) Kostenfaktor einer Abfrage
Von MichaelW im Forum Relationale DatenbanksystemeAntworten: 9Letzter Beitrag: 03.11.08, 15:58 -
Abfrage von CLOB Spalte aus einer Oracle DB
Von Templorials im Forum PHPAntworten: 0Letzter Beitrag: 24.07.08, 11:44 -
[Oracle] Performanceprobleme einer Abfrage
Von xnicnacx im Forum Relationale DatenbanksystemeAntworten: 3Letzter Beitrag: 31.01.07, 11:36 -
AND Abfrage innerhalb einer m:n Beziehung
Von CObject im Forum Relationale DatenbanksystemeAntworten: 1Letzter Beitrag: 26.12.06, 20:10





Zitieren
Login





