2011-03-08 72 views
1

我想要達成的目標可能很難解釋,所以我會盡力而爲。加入多個表格並顯示當前表格

我想在mysql中加入三個表的結果,並在結果中包含表名/別名,因此我知道哪些表的信息來自於。

我所有的表都有共同的列。

+1

沒有代碼?這很難幫助你。 – soasme 2011-03-08 14:46:58

回答

1

你應該嘗試:

select 'mytable1', column1, column2 
union 
select 'mytable2', column1, column2 
union 
select 'mytable3', column1, column2 
+0

如果我有多餘的列沒有出現在每張表 – fir3x 2011-03-08 15:22:03

+0

你想讓它們顯示在「連接」表中?如果你知道他們的名字,你可以把''放在select子句中 – 2011-03-08 16:05:55

1

您可以使用MySQL的別名功能

這樣

select table1.col1 as table1_col1, table2.col1 as table2_col1... 
0

沒有你的意思是這樣的嗎?

SELECT t1.*, "t1" as tablename FROM t1 
UNION 
SELECT t2.*, "t2" as tablename FROM t2 

其中t1t2是你的表

順便說一句:這不是很正確的數據存儲在這種方式。如果您需要在單個查詢中合併來自兩個表的數據,則應該考慮將表中的數據合併爲一個新列(並且可能將其添加到鍵中)。例如,你的表是

CREATE TABLE american_cars(id INT, company TEXT, model TEXT) 
CREATE TABLE european_cars(id INT, company TEXT, model TEXT) 

,那麼你應該把它合併爲

CREATE TABLE cars(id INT, company TEXT, model TEXT, region TEXT) 

或類似的東西。

+0

我會嘗試組合這些表,但是從長遠來看,對於帶索引的單個表,數據集可能會變大 – fir3x 2011-03-08 16:28:41