Thema: Vereinfachung
Hallo!
Ich habe ein kleines Problem, das ich z. Zt. mit zwei MySQL-Abfragen lösen. Vielleicht lassen sich diese ja zusammenfassen und ich steh grad mal aufm Schlauch...
Also: Ich habe zwei Tabellen:
Tabelle A mit einer ID (unique) und einer Bezeichnung
Tabelle B mit A_ID und einem Termin (Datum).
In Tabelle B werden der Bezeichnung aus Tabelle A verschiedene Terminen zugeordnet. Zum Beispiel:
Tablle A:
ID = 1; Bezeichnung = 'Meeting'
ID = 2; Bezeichnung = 'Zahnarzt'
Tabelle B:
A_ID = 1; Termin='2003-1-1 10:00:00'
A_ID = 2; Termin='2003-1-23 11:15:00'
A_ID = 1; Termin='2003-2-1 10:00:00'
A_ID = 1; Termin='2003-10-1 10:00:00'
Ich möchte die Bezeichnungen sortiert auflisten: Zuerst die Bezeichnungen, bei denen noch mindestens ein Termin ansteht, danach die Bezeichnungen, bei denen alle Termine in der Vergangenheit liegen.
Das mache ich zur Zeit so:
SELECT Bezeichnung, ID FROM A
und dann für jeden Datensatz des Ergebnisses
SELECT COUNT(*) FROM B WHERE A_ID='$Ergebnis1' && Termin >= NOW()
Wenn bei diesem Query das Ergebnis 0 lautet, weiß ich, alle Datensätze liegen in der Vergangenheit. Dann kommt die Bezeichnung in ein Array. Wenn das Ergebnis nicht 0 ist, kommt die Bezeichnung in einen zweiten Array. Diese beiden Arrays kann ich anschließend problemlos einzeln ausgeben.
Ich danke euch für das Durchlesen meines Problems und hoffe, dass ihr eine Vereinfachung für mich habt.
Danke schonmal im Voraus!
Mamphil