BaJu: verkniffelte MySQL-Anfrage

Hallo,

ich habe eine kniffelige MySQL-Anfrage
zu basteln, nach Möglichkeit in einem Stück,
weil ich in es in ein bestehendes Skript
einbauen möchte.
Vielleicht geht es auch gar nicht, ich
stelle das Problem einfach mal dar:

Ich habe eine Produktionen-Tabelle und
eine Termin-Tabelle und will nun für ein
Archiv mit nur einer Anfrage alle Produktionen
holen, die lediglich veraltete und keine
aktuellen Termine haben.

Hiermit finde ich alle, die alte Termine
haben:
 SELECT DISTINCT
 Produktionen.ID
 FROM
 Produktionen, Termine
 WHERE
 Termine.Datum < NOW() AND
 Termine.ID_Produktion = Produktionen.ID
 ORDER BY Produktionen.Headline

aber das findet (latürnich) nix:
 SELECT DISTINCT
 Produktionen.ID
 FROM
 Produktionen, Termine
 WHERE
 Termine.Datum < NOW() AND
 !Termine.Datum >= NOW() AND
 Termine.ID_Produktion = Produktionen.ID
 ORDER BY Produktionen.Headline

Kann ich die untere Anfrage vielleicht irgendwie
anders schreiben, damit sie < NOW() UND keine

= NOW() findet?

Das wäre extrem klasse...

Für jede Hilfe dankbar:
Barbara

  1. Hallo BaJu,

    SELECT DISTINCT
    Produktionen.ID
    FROM
    Produktionen, Termine
    WHERE
    Termine.Datum < NOW() AND
    Termine.ID_Produktion = Produktionen.ID
    ORDER BY Produktionen.Headline

    SELECT
      Produktionen.ID,
      Produktionen.Headline,
      MAX(Termine.Datum) AS LetzterTermin
    FROM
      Produktionen,
      Termine
    WHERE
      Termine.ID_Produktion = Produktionen.ID
    GROUP BY
      Produktionen.ID
    HAVING
      LetzterTermin < NOW()
    ORDER BY Produktionen.Headline

    Siehe auch: http://aktuell.de.selfhtml.org/tippstricks/datenbanken/having/index.htm

    Viele Grüße,
    Christian

    --
    Losung und Lehrtext für Freitag, 24. Oktober 2003:
    Der Herr lebt! Gelobt sei mein Fels! (Psalm 18,47)
    Zu Christus kommt als zu dem lebendigen Stein, der von den Menschen verworfen ist, aber bei Gott auserwählt und kostbar. (1.Petrus 2,4)
    (http://www.losungen.de/heute.php3, i.V. Götz)
    1. Lieber Christian,

      vielen vielen Dank !!!!
      Das läuft super, ich habe es zugegebenermaßen zwar noch nicht ganz kapiert, hatte mir schon fast gedacht, daß es was mit GROUP BY zu tun haben müßte...

      Es ist schon toll, wieviel man mit simplen SQL-Anweisungen hinkriegt, ich habe nur noch Verdoppeln des Scriptes und fürs Archiv was Extra basteln als Lösung gesehen, so kann ich aber das restliche Spielplan-Script verwenden - vielen Dank nochmal!

      Gute Nacht, Barbara