phpbar.de logo

Mailinglisten-Archive

[php] AW: [php] Abfrage von mehreren tabellen

[php] AW: [php] Abfrage von mehreren tabellen

Gloss Mathias Mathias.Gloss_(at)_start.de
Tue, 21 Nov 2000 18:41:04 +0100


Aloha,

> ----------
> Von: 	Markus Heckmann[SMTP:haegge_(at)_webriot.de]
> 
> (die mysql liste ist irgendwie tot.. deshalb mal hier an php)
> 
Die ist nicht tot, es hat nur niemand was geantwortet ;-)

> habe folgendes Problem:
> -es soll aus mehreren Tabellen daten abgerufen werden welche nach dem
> datum
> sortiert sind und auch nur in einem ganz bestimmten zeitbereich liegen
> dürfen.
> 
> Also meine Lösung war die:
> 
> select * from club, kino where (to_days(club.datum) <= (to_days(now())+4))
> AND (to_days(kino.datum) <= (to_days(now())+4));
> 
Das Problem ist hier, daß du 2 Tabellen abfrägst, die Ergebnisenge
einschänkst ... bis hier hin ist das auch ok ... aber nicht die beiden
Tabellen
miteinander Verknüpftst. Ohne eine Verknüpfung lässt sich halt eine Abfrage
aus
2 Tabellen nicht machen.

> das ist denn ja nun falsch - aber wie gehts besser...?
> 
Mit einem wohlüberlegten Datenbankdesign. Z.b. mit folgenden Spalten in
EINER Tabelle:

id autincrement,
typ enum oder char mit   z.B. K für Kino oder C für Club ....
datum  als passender Datumstyp
uhrzeit als passender Zeittyp
beschreibung varchar/text/...
.... weitere  Felder die du brauchst...

damit kannst du alle kinotermine abfragen :
... where typ='K' and (to_days(kino.datum) <= (to_days(now())+4))
    order by datum;

oder alle Clubtermine :
... where typ='C' and (to_days(kino.datum) <= (to_days(now())+4))
    order by datum;

oder alle Termine :
... where (to_days(kino.datum) <= (to_days(now())+4))
    order by datum;

Usw.

Lies dir mal ein SQL-Buch durch bzw. Onlinetexte dazu, wie man Datenbanken
und Tabellen designt. Und das schönste Design nützt nix, wenn oft benötigte
Abfragen zu lange dauern --> Design modifizieren .... das kann ganz schön
lange
dauern ;-)

Viele Grüße, Mathias




php::bar PHP Wiki   -   Listenarchive