mehrere Tabellen abrufen und geordnet ausgeben (mysql)

Watusimann

Erfahrenes Mitglied
Hallo Gemeinde,

Ich habe drei Tabellen, die die gleiche Struktur haben. Nun möchte ich alle drei Tabellen abrufen und die entsprechenden Ausgaben nach STATUS ordnen.

PHP:
SELECT 
		barverkauf.*, werkstattausgabe.*, raeder.*
FROM 
		barverkauf, werkstattausgabe, raeder
WHERE 
		status = 0
ORDER BY
               timestamp
ASC

So klappt es leider nicht. Er zeigt mir den Fehler der Zweideutigkeit. Ich habe ehrlich gesagt keine Idee mehr dazu. Es sollte doch eigentlich recht simple sein ?

vielen Dank im Voraus
 
Ich habe es jetzt vorerst anders gelöst ...
PHP:
$table = array('barverkauf', 'werkstattausgabe', 'raeder');
for($i=0; $i<count($table);$i++) {
    echo 'Abteilung:'.ucwords($table[$i]);
	$result = mysql_query(" SELECT * 
                                           FROM  ".$table[$i]." 
                                           WHERE  ".$table[$i].".status = '0' 
                                           ORDER BY timestamp ASC") or die (mysql_error());
							
				while($row = mysql_fetch_assoc($result))
			  {  
                                 // Ausgabe ...
                          }
                }

Ist leider nicht das gewünschte Ergebnis, da die Ordnung von Timestamp zwar Tabellenbezogen ist allerdings nicht gesamtauswirkend ist. Vielleicht hat noch jemand eine Idee?
 
Die Fehlermeldung kommt daher, dass MySQL Felder mit gleichem Namen abfragt.
Wenn Du diese Felder abfragen willst, müsstest Du einen Alias vergeben, z.B. so:

PHP:
select 
table1.feld1 as t1_f1,
table2.feld1 as t2_f1
from table1, table2 ....

Aber versuch doch mal folgendes:

PHP:
SELECT * from barverkauf
WHERE  status = 0

union

SELECT * from werkstattausgabe
WHERE  status = 0

union

SELECT * from raeder
WHERE  status = 0

ORDER BY status ASC
 
Hallo,

Danke für den Tip. Habe mittlerweile alles in eine Tab reingequetscht (stand etwas unter Zeitdruck) und selektiere entsprechend nach Abteilung und Status, aber deine Lösung sieht logischer aus. Ich werds nochmal probieren. Danke nochmals
 
Zurück