Query ueber 2 Tabellen

Query ueber 2 Tabellen

am 28.11.2006 18:56:24 von Michael Kuroll

Hallo dcdm!

Ich krieg einen Query nicht so ganz hin, leider ist mir in diesem Fall die
Datenbankstruktur vorgegeben und ich kann sie nicht ändern.

Ausgangsbasis:
Es existieren 2 Tabellen:

Tabelle user (vereinfacht):
Felder: user_id, user_vorname, user_nachname

Tabelle temrine mit folgenden Feldern:
termine_id
termine_tag
termine_monat
termine_jahr
termine_text
termine_host (=user id in usertabelle)

Ziel ist es die nächsten drei Termine (inkl. heute) abzufragen und
gleichzeitig den Vor- und Nachnamen des Veranstalters (temrine_host)
abzufragen.

Folgender Query funktioniert:
SELECT termine.termine_tag, termine.termine_monat, termine.termine_jahr,
termine.termine_text, termine.termine_host, user.user_vorname,
user.user_nachname
FROM termine, user
WHERE user.user_id = termine.termine_host
ORDER BY termine.termine_jahr, termine.termine_monat, termine.termine_tag
DESC
LIMIT 3

allerdings wird hier das Datum des Termines noch nicht berücksichtigt.

Mein Ansatz wäre:

SELECT termine.termine_tag, termine.termine_monat, termine.termine_jahr,
termine.termine_text, termine.termine_host, user.user_vorname,
user.user_nachname
FROM termine, user
WHERE user.user_id = termine.termine_host
AND termine.termine_jahr >= '2006'
AND termine.termine_monat >= '11'
AND termine.termine_tag >= '28'
ORDER BY termine.termine_jahr, termine.termine_monat, termine.termine_tag
DESC
LIMIT 3

Leider liefert das auch nicht das gewünschte Ergebnis.
Kann mir bitte irgendjemand helfen?

TIA
Mike

Re: Query ueber 2 Tabellen

am 28.11.2006 19:35:57 von Christian Schmidt

Am Tue, 28 Nov 2006 18:56:24 +0100 schrieb Michael Kuroll:

> Hallo dcdm!
>
> Ich krieg einen Query nicht so ganz hin, leider ist mir in diesem Fall die
> Datenbankstruktur vorgegeben und ich kann sie nicht ändern.

> Mein Ansatz wäre:
>
> SELECT termine.termine_tag, termine.termine_monat, termine.termine_jahr,
> termine.termine_text, termine.termine_host, user.user_vorname,
> user.user_nachname
> FROM termine, user
> WHERE user.user_id = termine.termine_host
> AND termine.termine_jahr >= '2006'
> AND termine.termine_monat >= '11'
> AND termine.termine_tag >= '28'
> ORDER BY termine.termine_jahr, termine.termine_monat, termine.termine_tag
> DESC
> LIMIT 3
>
> Leider liefert das auch nicht das gewünschte Ergebnis.

Sondern?

> Kann mir bitte irgendjemand helfen?

Aus dem Bauch heraus, hätte ich gesagt, das DESC ist falsch, müsste ASC
sein. Denn wenn Du die Termine 1.12.2007, 20.11.2007, 2.11.2007 und
1.11.2006 hast, bekommst Du nur die 2007er.

Zudem ist
> AND termine.termine_tag >= '28'
auch falsch, denn der Termin am 1.12.2006 würde da auch rausfallen.

Genauso wie
> AND termine.termine_monat >= '11'
alle Termine Anfang 2007 rauswirft.

Du solltest das ganze nochmal überdenken.

Chris

Re: Query ueber 2 Tabellen

am 28.11.2006 19:46:13 von Michael Kuroll

Am Tue, 28 Nov 2006 19:35:57 +0100 schrieb Christian Schmidt:

> Genauso wie
>> AND termine.termine_monat >= '11'
> alle Termine Anfang 2007 rauswirft.

> Du solltest das ganze nochmal überdenken.

Ja jetzt wo Du das schreibst ist das sowas von sonnenklar, manchmal sieht
man vor lauter Bäumen keinen Wald mehr.
Danke fürs Augen öffnen ;)

Mike