verkniffelte MySQL-Anfrage
BaJu
- php
0 Christian Seiler0 BaJu
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
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
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