2009-02-26 22 views
5

Ich habe zwei Tabellen, die die gleiche Struktur haben; einer enthält permanente Daten, und einer wird regelmäßig gelöscht und zurückgesetzt.Wählen Sie Daten aus zwei Tabellen mit identischen Spalten

Ich brauche die gleiche select-Anweisung Arbeit auf beide zu machen, als ob sie nur einen Tisch

waren

Das ist, was ich versucht:

SELECT * FROM a, b WHERE 1;

wobei a und b die gleiche Struktur haben;

Antwort

8

Sie eine UNION in Sie suchen können bei Verwendung abfragen:

Select * from a 
UNION 
Select * from b 

Hinweis: Es ist besser Praxis ist Ihre Spaltennamen zu qualifizieren, anstatt die * Referenz zu verwenden. Dies würde die Abfrage auch dann nützlich machen, wenn Ihre beiden Tabellen Schemaänderungen unterzogen wurden, Sie aber dennoch alle Daten, die die beiden Tabellen gemeinsam hatten, zurückziehen möchten.

+0

Dank der * war einfach der schnellste Weg, um es zu testen –

+0

Ich kann nicht das Wort Union glauben, nie in den Sinn kam, wenn Ich habe das versucht. – user12345613

3

Sie wollen also eine Reihe von Ergebnissen, die den Inhalt beider Tabellen enthält? Wenn ja, dann müssen Sie etwas wie dies tun:

select a.col1, a.col2 from a where... 
UNION 
select b.col1, b.col2 from b where... 

mysql union syntax

Verwandte Themen