Abfrage aller Tabellen mit allen Inhalten

Watusimann

Erfahrenes Mitglied
Guten Morgen Gemeinde,

Ich habe 4 Tabellen á 10 Spalten und würde gern aus allen Tabellen alle Datensätze abrufen und nach dem ältesten Eintrag ordnen:

SELECT * FROM tab1, tab2, tab3, tab4 ORDER BY timestamp ASC

Der o.a. Code funktioniert nicht.
In meinem schlauen Buch habe ich zwar ein Bsp. jedoch bezieht sich das Bsp. nur auf ausgewählte Spalten und so ganz steig ich nicht dahinter.

SELECT tab1.name, tab1.mail, tab2.name, tab2.mail ... FROM tab1, tab2 ...

Dieser Code ist doch aber nicht die Lösung - oder?

Irgendwie häng ich an dem Punkt fest und würde mich über sehr über eine Hilfe freuen.

mfg Dave
 
Hallo Dave,

was möchtest du mit deiner Abfrage darstellen?
Wenn du Inhalte aus Datenbanken selektieren willst, hast du folgende Möglichkeiten:

1. Anzeige aller Spalten einer Tabelle

SELECT * FROM tab1 ORDER BY timestamp ASC

Wenn du Daten aus mehreren Tabellen anzeigen willst, musst du die Tabellen
mit einem join verknüpfen und nach dem select genau angeben, aus welcher Tabelle die Information kommen soll. Wenn du zusätzlich noch eine Sortierung angeben willst, so muss sich das angegebene Feld entweder eindeutig auf nur eine deiner Tabellen beziehen, oder du gibst auch hier zusätzlich den Namen der Tabelle an.

Was hast du in deinen Tabellen gespeichert und was willst du darstellen?

Gruß

Harald
 
Eine Abfrage von einer Tabelle ist wie du beschrieben hast recht simple. Ich habe aber in einer Datenbank mehrere Tabellen und würde diese gern nach dem Timestamp geordnet ausgeben:

Habe einen Lösungsvorschlag bekommen, der allerdings voraussetzt, daß die spaltennamen gleich sind ...

SELECT * FROM tab1 UNION SELECT * FROM tab2 UNION SELECT * FROM tab3 WHERE anfrage = '$suchanfrage' ORDER BY timestamp ASC

so funktioniert das wunderbar, danke aber trotzdem ;)

Gruß Dave
 

Neue Beiträge

Zurück