Abfrage über zwei Tabellen
Frank Geisweid
- datenbank
huhu,
Ich habe da eine Mysql Abfrage , die über zwei Tabellen geht und mich überfordert... :-((
Ich habe eine Tabelle termine
mit dem Index id
und einem Feld datum
und eine zweite Tabelle startseite
die einige termine
.id
darstellt in dem Feld termin\_id
Jetzt will ich mit einer Abfrage nachschauen welcher Termin der nächste ist termine
.datum
,
welcher aber noch nicht bereits in der startseite
.termin\_id
eingetragen ist.
SELECT termine.id , termine.datum
FROM termine
,startseite
WHERE (termine.datum > '2007-06-26')
AND ( startseite.termin_id != termine.id)
ORDER BY termine.datum LIMIT 1
irgendwie bekomme ich kein Ergebniss ???
Geht eigentlich die Abfrage -- startseite.termin_id != termine.id -- ???
Dank Geisi
Selber huhu.
Welche MySQL Version? (Bitte generell mit angeben)
Unterstützt dein System 'subquery/ies'?
Du möchtest einen expliziten LEFT OUTER JOIN von 'termine' zu 'startseite' verwenden. (Du hast implizit einen INNER JOIN verwendet auf die Ungleichheit von id und termin_id
SELECT termine.id , termine.datum
FROM termine
LEFT OUTER JOIN startseite
ON termine.id = startseite.termin_id
WHERE startseite.termin_id IS NULL
AND termine.datum > '2007-06-26' -- statt des fixen wertes solltest du die Datums/Zeitfunktionen wie TODAY() oder NOW() von MySQL benutzen
ORDER BY termine.datum ASC
LIMIT 1
Geht eigentlich die Abfrage -- startseite.termin_id != termine.id -- ???
Geht schon, allerdings nicht für das was du erreichen möchtest.
Grüsse
Frank
huhu? HUHU!
DAAANKE!
LEFT OUTER JOIN startseite ON termine.id = startseite.termin_id
man lernt doch nie aus !
Geisi