Frank (no reg): SQL: "Liste aller Veranstaltungen samt nächstem Termin"?

Beitrag lesen

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