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

The laws of physics are the canvas God laid down on which to paint his masterpiece. “Leonardo Vetra” in Dan Brown’s “Angels & Demons”

2

Re: Vereinfachung

Moin Mamphil,

wie wär´s denn einfach mit einem
ORDER BY Termin DESC
?

Wenn Du dann einen Select hast würdest Du der Reihe nach alle Termine bekommen, die "aktuellsten" zuerst.

HTH, tink

Beleidigungen sind die Argumente derer, die keine Argumente haben

Re: Vereinfachung

Hall Tink,

danke für deine Antwort. Das Problem ist, dass ich für die Verwaltung gar nicht wissen will, welche Termine noch anliegen, sondern nur ob einer "Terminbeschreibung" noch ein Termin (der in der Zukunft liegt) zugeordnet ist. Ein MySQL-Query der das macht, wär echt praktisch. Also zum Beispiel auf Deutsch:
Gib mir alle Bezeichnungen und IDs aus Tabelle A aus, denen kein Termin mit Datum in der Zukunft in Tabelle B zugeordnet ist.

Mamphil

The laws of physics are the canvas God laid down on which to paint his masterpiece. “Leonardo Vetra” in Dan Brown’s “Angels & Demons”