2013-01-01 45 views
1

我有一個選擇多個表的名稱查詢:Mysql的聯合多個表到一個大表

SELECT TABLE_NAME AS表與INF​​ORMATION_SCHEMA.TABLES

+---------------+ 
| TABLES  | 
+---------------+ 
| A    | 
| B    | 
| <more tables> | 
+---------------+ 

我想創建一個查詢其中每個表中的每個值都按照如下方式結合在一起:

+------------+----+----------+ 
| table_name | id | name  | 
+------------+----+----------+ 
| A   | 1 | item1 | <- Items from Table A 
| A   | 2 | item2 | 
| A   | 3 | item3 | 
| B   | 1 | item1 | <- Items from Table B 
| B   | 2 | item2 | 
| <entries for other tables> | 
+------------+----+----------+ 

任何想法?先謝謝你!

+0

這聽起來不像是一個聚合('COUNT(),MAX(),MIN(),SUM() ,etc'),而是像'UNION ALL'和'ORDER BY table_name'。 –

+0

對不起,我改變了標題和標籤合併,而不是聚合。謝謝。 – alexhuang91

回答

1

假設你正在使用其寬鬆意義上的 「聚合」 ......

select 'A' as table_name, id, name 
from table_a 
union all 
select 'B' as table_name, id, name 
from table_b 
+0

這是在正確的軌道上!我很好奇,我該如何爲幾百張桌子做一個工會。感謝您的快速響應。 – alexhuang91

+1

有很多線條。除非這些表格很小,否則這將是一個緩慢的查詢。這聽起來像你的數據庫設計是壞的。 - 需要訪問模式的詳細信息和聯合許多表指向我認爲的問題。 –

+1

不良數據模型的工資正在打字,而且很多。 – APC