Agor: Unterabfragen als Filter

Beitrag lesen

Wenn du deine Frage nicht im PHP-Bereich gestellt hättest, wo sie wenig verloren hat, sondern im Datenbankbereich - dann wärest du schon beim Erstellen des Threads darauf hingewiesen worden, dass du bitte so wichtige Informationen wie den Namen des Datenbanksystems und dessen Versionsnummer nicht verschweigen sollst.

Tut mir leid, da war ich mir nicht sicher wo es reingehört.
Also wie man erahnen kann benutze ich mySQL und Version 5.1.37

Und darüber hinaus sind genauere Erklärungen zur Datenstruktur (im Gegensatz zu einem kurzen „das sind die zwei Tabellen: [zwei mal Erwähnung von nicht mehr als Spaltennamen]”) gern gesehen;

Ich dachte, dass die Tabellen beschreibung aussreichte.
Also ich habe so eine Art relationship zwischen den tabellen pictures und tags.
picture_tag verbinden diese indem sie einmal picture_id und tag_id enthält.
tags enthält den Namen, die ID und andere unwichtige Informationen. pictures enthält die Infos zum Bild und eine ID.

Ich möchte gern die Möglichkeit haben, die Bilder zu filtern und zwar indem ich die tags(per PHP) angebe. Nun will ich, dass schon bei der mySQL Abfrage nur Ergebnisse erscheinen, die jeden angegeben Tag besitzen.

$result = mysql_query("
  SELECT
    picture_id
  FROM
    picture_tag
  WHERE
    tag_id IN (SELECT id FROM tags WHERE name = 'abc')
");

benutze ich um nur Bilder zu laden, die auch den Tag abc enthalten. Jetzt möchte ich aber beliebig viele Tags dazu addieren.
Der Zusatz
AND tag_id IN (SELECT id FROM tags WHERE name = 'def')
funktioniert leider nicht.

Hoffe es ist jetzt verständlich genung und jemand hat eine Lösung. Sollte meiner Meinung nach recht simple sein nur leider komm ich nicht drauf.

mfg
Argor