PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   MySQLi/PDO/(MySQL) (http://www.selfphp.de/forum/forumdisplay.php?f=22)
-   -   Abfrage nach letztem Datum über mehrere Tabellen (http://www.selfphp.de/forum/showthread.php?t=16994)

delalE 11.06.2007 11:54:18

Abfrage nach letztem Datum über mehrere Tabellen
 
Hallo Zusammen!


Ich habe eine SQL-Datenbank mit vielen Tabellen, worin Daten und Werte von verschiedenen Versuchen gespeichert sind. Alle Tabellen sind unterschiedlich strukturiert, d. h. sie haben verschiedene Spalten. Die Spalten "ID" und "Zeit" sind jedoch in jeder Tabelle enthalten. Die Zeit wird mit der timestamp() Funktion erfasst. Nun soll eine Abfrage erstellt werden, die mir den letzten gespeicherten Datensatz ausgibt (egal aus welcher Tabelle dieser Datensatz letztendlich ist). Ich habe es nun zuletzt folgendermaßen (vereinfacht über 2 Tabellen) probiert, jedoch bekomme ich schon wieder kein Erbegnis und bin nun am verzweifeln :D -->

SELECT * FROM tab1 JOIN tab2
WHERE tab1.Zeit=tab2.Zeit
ORDER BY tab1.Zeit OR tab2.Zeit DESC LIMIT 1

Hoffe Ihr könnt mir helfen :(

Danke schonmal,

DelalE

delalE 11.06.2007 15:04:44

AW: Abfrage nach letztem Datum über mehrere Tabellen
 
so schwer, dass keiner ne ahnung hat oder so banal, dass keiner auf sowas antworten will??? :D

Heinrich 11.06.2007 15:24:51

AW: Abfrage nach letztem Datum über mehrere Tabellen
 
Gibt es denn für jede Zeit einen Datensatz in jeder Tabelle?
Das dürfte so nicht gehen:
PHP-Code:

ORDER BY tab1.Zeit OR tab2.Zeit 

es muss schon klar sein, nach was sortiert wird. Also höchstens
PHP-Code:

ORDER BY tab1.Zeittab2.Zeit 

1. und 2. Sortierkriterium.

Ansonsten könntest du
PHP-Code:

Select MAX(zeit

versuchen.

delalE 11.06.2007 16:43:11

AW: Abfrage nach letztem Datum über mehrere Tabellen
 
ja, es gibt einen datensatz zu jedem datum.

das problem ist ja, dass der entweder in der einen tabelle oder in der anderen nach dem datum sortiert, denn einzeln klappt es wunderbar. mit selcet max() ist es das selbe. er soll aber unabhängig von der tabelle einfach den datensatz mit dem aktuellsten datum rausfischen und auch nur diesen datensatz aus dieser tabelle wiedergeben...

das mit dem order by mit der OR verknüpfung ist schwachsinn, du hast recht...

xabbuh 11.06.2007 16:49:18

AW: Abfrage nach letztem Datum über mehrere Tabellen
 
Code:

(
    SELECT id, zeit FROM tabelle1
    UNION
    SELECT id, zeit FROM tabelle2
)
ORDER BY
    zeit DESC
LIMIT
    1


delalE 11.06.2007 17:00:37

AW: Abfrage nach letztem Datum über mehrere Tabellen
 
klappt leider auch nicht, gibt ne fehlermeldung...

xabbuh 11.06.2007 17:24:45

AW: Abfrage nach letztem Datum über mehrere Tabellen
 
Das ist ja nicht so toll.

ZeroxXx 11.06.2007 21:10:26

AW: Abfrage nach letztem Datum über mehrere Tabellen
 
Zitat:

Zitat von delalE (Beitrag 102560)
klappt leider auch nicht, gibt ne fehlermeldung...

Wie wärs wenn du die Fehlermeldung hier rein postes?

MatMel 11.06.2007 21:44:59

AW: Abfrage nach letztem Datum über mehrere Tabellen
 
Zitat:

Zitat von ZeroxXx (Beitrag 102583)
Wie wärs wenn du die Fehlermeldung hier rein postes?

Ich glaub das ist durch den prägnanten Post von xabbuh klar geworden ;)

Ich denk mal da fehlt einfach noch en SELECT davor oder nicht? Die zwei SELECTS, die jetzt da sind, sind ja eigentlich Untergeordnet, sodass das ORDER BY dann ganz verlassen dasteht...

xabbuh 12.06.2007 08:30:01

AW: Abfrage nach letztem Datum über mehrere Tabellen
 
Zitat:

Zitat von MatMel (Beitrag 102585)
Ich denk mal da fehlt einfach noch en SELECT davor oder nicht? Die zwei SELECTS, die jetzt da sind, sind ja eigentlich Untergeordnet, sodass das ORDER BY dann ganz verlassen dasteht...

Daran wird es eher nicht liegen: http://dev.mysql.com/doc/refman/5.0/en/union.html


Alle Zeitangaben in WEZ +2. Es ist jetzt 15:12:42 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.