Hi alle,
ich bastle gerade an einem komplexen SQL-Statement herum und komme auf keinen grünen Zweig; vielleicht kann mir ja hier jemand einen Tipp geben ...
Gesetzt den Fall, ich will das Programm eines Kinos ausgeben, und zwar als Liste aller aktuellen Filme, jeweils mit dem nächsten Vorstellungstermin. Ich habe also zwei Tabellen:
film (id, name, beschreibung ...)
vorstellung (id, id_film, beginn, preis, saal, ...)
Typischerweise wird es ja zu jedem Film mehrere Vorstellungen in der zweiten Tabelle geben. Mein Ansatz:
SELECT film.*,
vorstellung.*,
film.id AS fid
FROM film, vorstellung
WHERE
(film.id = vorstellung.id_film) AND
(vorstellung.beginn =
SELECT MIN(beginn)
FROM vorstellung
WHERE
(id_film = fid) AND
(beginn > NOW())
)
Ich hole mir also die Zeit der nächsten Vorstellung aus einem Subquery und schränke meinen Hauptquery auf Datensätze ein, die dieses Datum haben.
Anscheinend habe ich mir das aber zu einfach vorgestellt, denn das funktioniert nicht. Ich erhalte zwar keine Fehlermeldung, aber auch keine Ergebnisse. Wenn ich die Bedingung (id_film = fid) aus dem Subquery nehme, dann kommt etwas -- aber natürlich nicht das richtige. Muss ich noch etwas zusätzlich unternehmen, um das Feld des Hauptqueries im Subquery verwenden zu können, oder liegt mein Verständnisfehler an anderer Stelle?
Danke für alle sachdienlichen Hinweise!
-- snorri