2016-08-18 5 views
1

Das ist also ziemlich allgemein bekannt Zeilen aus mehreren Tabellen auszuwählen und die Ergebnisse übereinander zu stapeln:Wählen begrenzte Zeilen aus mehreren Tabellen

SELECT * FROM table1 
UNION 
SELECT * FROM table2 
UNION 
... 

Allerdings, wenn ich nur eine begrenzte Anzahl von Zeilen will aus jeden Tisch, wie soll ich es dann schreiben?

SELECT * FROM table1 LIMIT 2 
UNION 
SELECT * FROM table2 LIMIT 2 
UNION 
... 

Funktioniert eindeutig nicht.

Beachten Sie, dass ich in meinem Fall 51 Tabellen habe, alle mit den gleichen genauen Spalten.

Antwort

2

könnte Arbeit auf diese Weise

(SELECT * FROM table1 LIMIT 2 ) 
UNION 
(SELECT * FROM table2 LIMIT 2) 
UNION 
... 
+0

sein, dass es ist? Einfach Klammern auf sie setzen ?! Hahaha! Ich verbrachte wie die letzten Stunden damit, mich zu ärgern, um eine Lösung zu finden! Vielen Dank! – Kartik

+1

Wrapping der Abfrage mit() Sie erzwingen die Rdbms, um das Ergebnis zu betrachten und nicht nur die Abfrage zu perfrorm .. selbst .. in diesem wy Sie Union das Resutl nicht die Abfrage .. – scaisEdge

+0

Vielen Dank. Ich wusste nicht, dass eine solche Trennung zwischen Abfrage und Ergebnissen existiert. Aber darüber nachzudenken, wie RDBMS funktioniert, macht es Sinn. – Kartik

Verwandte Themen