2012-06-19 17 views
0

選擇行我想從多個表中的數據(所有表都相同)從多個表

Select column1,column2 From table1,table2 

它是在MySQL中得到這個正確的方式。 (我在查詢動態傳遞的表名)

+3

請接受您的問題的更多答案。 [爲什麼我應該接受答案?](http://meta.stackexchange.com/a/5235/180760) – Sirko

+0

您無法動態傳遞表名稱。他們必須事先知道數據庫。 – Thilo

+0

您的查詢可能在語法上是正確的,假設1. table1和table2都存在2.在table1或table2中有一列名爲column1 3.有一列名爲column2 'table1'或'table2'中的任何一個,而4. * column1或column2不存在於* both *表中。現在,你試圖從這個查詢中獲得什麼,或者你是否收到錯誤? – RandomSeed

回答

1

你需要的語法是這一個:

SELECT a.column1, b.column2 
FROM table1 AS a, table2 AS b 

AS給你的表,你可以在你的請求直接使用的別名。

0

像:

SELECT table1.column1, table2.column2 
FROM table1, table2 

通過充分進行資格使用表中的列,你不會遇到衝突時有列在表中相同的名稱。正如samsamX在他的回答中指出的那樣,另一種替代方法是將表別名,這可以使查詢更簡單,並且具有較長的表名/模式名稱。

0

也許這:

SELECT column1, column2 
FROM table1 
UNION ALL 
SELECT column1, column2 
FROM table2 

但你不能動態地傳遞表名。他們必須事先知道數據庫(所以您需要先在您的程序中構建SQL)。