2014-03-05 50 views
0

如何從所有選定的表中選擇一列?像(引發錯誤):MySQL - 所有表中的SELECT列

SELECT *.id FROM table1, table2, table3, table4 

我wouldnt像這樣做,因爲有很多的表,他們將改變:

SELECT table1.id, table2.id, table3.id, table4.id FROM table1, table2, table3, table4 

只有ID,所以這個心不是有用好:

SELECT * FROM table1, table2, table3, table4 

有沒有一個很好的解決方案?

迎接

+1

編程生成查詢! –

+0

簡單的方法是:'SELECT t1.id,t2.id,t3.id,t4.id FROM table1 t1,table2 t2,table3 t3,table4 t4' – Hamidreza

回答

4

爲什麼不使用UNION,如下所示:

SELECT id FROM table1 
UNION 
SELECT id FROM table2 
UNION 
SELECT id FROM table3 
UNION 
SELECT id FROM table4 
0

使用別名像表和前綴別名與列名

例:表名aliasname的

然後使用select t1.columnname從表1 T1

SELECT t1.id, t2.id, t3.id, t4.id FROM table1 t1, table2 t2, table3 t3, table4 t4 
+0

您可以添加一些額外的信息和答案嗎? – Max

0

非常好的解決方案,不容易出錯和靈活的寫下你想要在你希望它是相同的順序來獲取列:

SELECT 
    t1.id as t1_id, 
    t2.id as t2_id, 
    t3.id as t3_id, 
    t4.id as t4_id 
FROM 
    table1 t1, table2 t2, table3 t3, table4 t4 
; 

做你想做的事CROSS JOIN?

優勢: 你必須爲每個列DIFF名/參考