Ich würde das mit einem Join lösen.
@Thorsten:
Was für ne tolle Idee!!!!. Es ist bereits mit einem Join gelöst, wenn auch nicht in/mit expliziter JOIN Notation sondern from tabelle1, tabelle2, ....
Ich würde das vielleicht besser so schreiben:
SELECT outerFilm.*,
outerVorstellung.*
-- film.id AS fid -- das kann weg, du hast ja film.id schon mittels outerFilm.*
FROM film outerFilm
INNER JOIN vorstellung outerVorstellung
ON outerFilm.id = outerVorstellung.id_film
WHERE vorstellung.beginn =
(SELECT MIN(innerVorstellung.beginn)
FROM vorstellung innerVorstellung
WHERE innerVorstellung.id_film = outerVorstellung.id_film -- rückreferenz zur korrelation
AND innerVorstellung.beginn > NOW())
Imho, hat snorri etwas komisch die Abfragen miteinander verbunden (korreliert), evt. die Klammern falsch gesetzt?
Hinweise an snorri:
- nutze bitte explizite JOIN Syntax, liest sich besser und lässt ggf das DBMS besser optimieren
- verzichte bitte auf * um Spalten zu selektieren, benenne stattdessen die auszugebenden Spalten explizit (das Thema ist hier im Forum oft genug diskutiert worden)
Grüsse, Frank