phpbar.de logo

Mailinglisten-Archive

Kurse an mehreren Daten selektieren ein etwas komplexer select

Kurse an mehreren Daten selektieren ein etwas komplexer select

Alexander Haslberger mysql_(at)_lists.phpcenter.de
Tue, 22 May 2001 10:47:40 +0200


> das datum wird als unix time step abgespeichert
>
> select  min (datum.anlasstermine) as m_datum,anlassid.anlasstermine, titel.anlass
> from anlasstermine,  anlass
>  where datum.anlasstermine > aktuelles_datum and anlassid.anlasstermine =ID.anlass
> group by anlassid.anlasstermine
>
> nur irgendetwas geht nicht aktuelles_datum wir durch den unix timestep ersetzt

Hallo Thomas,

Du hast folgende Fehler in Deiner Abfrage:

1.Nimm das Leerzeichen nach min heraus, nicht min      (irgendwas), sondern min(...)
min ist eine Funktion und erwartet _unmittelbar_  folgend das Argument

2.Nenne bei Abfragen mit Tabellennamen zuerst den Tabellennamen, dann den
Spaltennamen:
also select tabellenname.spaltenname from ...., nicht spaltenname.tabellenname .....

Die richtige Abfrage lautet:

select  min(anlasstermine.datum) as m_datum,anlasstermine.anlassid, anlass.titel
from anlasstermine ,  anlass
 where anlasstermine.datum > aktuelles_datum and anlasstermine.anlassid =anlass.ID
group by anlasstermine.anlassid

Übrigens verwendest Du in Deiner Tabelle anlasstermine für das Datumsfeld einen
Tinyint(10) !!!
Tinyint(4) ist aber das Maximum und entspricht dem Maximalert 255. Nimm für
vierstellige Jahreszahlen einen INT
oder greif auf Timestamp oder ähnliches zurück.

Alex

Übrigens, es heißt timestamp (Zeitstempel) nicht time step

---
*** Weitere Infos zur Mailingliste und MySQL unter http://www.4t2.com/mysql 



php::bar PHP Wiki   -   Listenarchive