2012-03-23 78 views
1
(SELECT field1 FROM Table1) UNION 
(SELECT field1 FROM Table2); 

這將從兩個表中獲取所有行。 有沒有辦法將表名添加到結果中,以便更容易地看到記錄來自哪裏?例如使用IF table1然後預先記錄一個字符串?MYSQL UNION - 使用mysql字符串函數?

的示例記錄我目前得到的是

banana 

我想

t1-banana or t2-banana 
+1

我們**不知道**您的表格是什麼樣的...... – Neal 2012-03-23 14:32:20

+0

您爲什麼需要這個? – 2012-03-23 14:34:11

+0

這將使聯盟運營商中的一件事無效,因爲那麼將會(可能)是所有唯一的行 – Habib 2012-03-23 14:36:56

回答

2
(SELECT CONCAT("t1-", field1) FROM Table1) 
UNION 
(SELECT CONCAT("t2-", field1) FROM Table2); 
1
(SELECT Concat(field1 , '-Table1') FROM Table1) UNION 
(SELECT Concat(field1 , '-Table2') FROM Table2); 
+2

'+'在SQL-Server中作爲一個串聯運算符,而不是MySQL。 – 2012-03-23 14:35:44

+0

要在MySQL中連接字符串,請使用'CONCAT'。 – 2012-03-23 14:36:08

+0

非常感謝,以爲我表達了這個想法;) – Habib 2012-03-23 14:39:35

4

您可以添加表名作爲第二列的值:

(SELECT field1, 'Table1' AS table_name FROM Table1) 
UNION 
(SELECT field1, 'Table2' AS table_name FROM Table2); 
+1

+1,這比'CONCAT'更好。 – 2012-03-23 14:37:13

+0

+1,在MySQL端更快,使用PHP更容易檢查 – 2012-03-23 15:25:49

+0

是的。 Rocket正確回答了我的問題,但我在代碼中使用了這個答案,因爲它對我來說更快。謝謝 – Harry 2012-03-23 15:27:25

2
(SELECT field1, 't1' as table_name FROM Table1) 
UNION  
(SELECT field1, 't2' as table_name FROM Table2); 
+1

+1,這可能比使用'CONCAT'更好。 – 2012-03-23 14:39:03