Suche passendes SELECT

waypray

Grünschnabel
Hallo

Ich habe in meiner DB eine m:n-Tabelle mit den Spalten mediafile_id und content_id.
Dafür suche ich jetzt eine Abfrage, die alle mediafile_id's liefert denen alle angegebenen content_id's zugeordnet sind. :confused:

Code:
SELECT mediafile_id FROM mediacontent WHERE content_id IN ("Liste der content_id's")

liefert ja alle mediafile_id's zurück denen mindestens eine der angegebenen content_id's zugeordnet ist und nicht alle gemeinsam.

Hat jemand eine Idee?


Christian

P.S.: Ich verwende MySQL 4.1.10
 
Ich weiss nicht genau was du meinst. Hast du zum Beispiel die Liste aller content_ids die du möchtest in einem Array? Und möchtest mit einem Query alle ids, wo eine der content ids im Array zugeordnet ist?

Was meinst du liefert nicht alle gemeinesam? Was möchtest du genau für ein Ergebnis?
 
Okay dann ein Beispiel:
Code:
mId | cid
======
 2  |  2
 2  |  3
 2  |  4
 3  |  2
 3  |  3

Jetzt brauche ich eine Abfrage, die mir bei Angabe von content_id's = (2,3) als Ergebnis die mediafile_id's 2 und 3 liefert. Gebe ich aber als content_id's (2,3,4) an, darf nur die mediafile_id 2 zurückgegeben werden.
Ist das verständlicher?

Habe jetzt eine Lösung gefunden:
Code:
SELECT distinct mediafile_id FROM mediacontent
WHERE mediafile_id in (select mediafile_id from mediacontent where content_id=7)
and mediafile_id in (select mediafile_id from mediacontent where content_id=23)
Allerdings muss ich für jede content_id eine eigene Subquery einfügen. Da das aber auch leicht mal deutlich mehr als 10 (!) content_id's werden können, wäre ich sehr dankbar, wenn jemand eine effektivere Lösung anzubieten hätte. :-)
 
Zuletzt bearbeitet:
Zurück