2012-06-11 53 views
0

我有兩個mysql表。MYSQL - 將結果集A添加到結果集B?請看我的例子

他們以這種方式佈置:

user_info 

id | emailContact 
_______________________ 
1 | [email protected] 
3 | [email protected] 


user_biz_info 

id | emailContact 
_________________________ 
8 | [email protected] 
9 | [email protected] 

我會用什麼樣的加入創造這樣一個結果集的信息:

id | emailContact 
________________________________ 
1 - [email protected] 
3 - [email protected] 
8 - [email protected] 
9 - [email protected] 

我曾嘗試以下:

SELECT p.id, p.emailContact, b.id, b.emailContact 
FROM user_info p, user_business_info b 

但似乎這是一種不正確的做法。

有人能夠在這方面提出正確的方法,或者可能指向一些涵蓋這種類型的mysql連接的教程的方向,因爲這是我所需要的在這種情況下。

感謝您在閱讀我的問題的時間!

回答

2

使用UNION

SELECT id, emailContact FROM user_info 
UNION ALL 
SELECT id, emailContact FROM user_business_info 
+0

嗨,謝謝你的迴應。爲什麼你選擇使用UNION ALL而@Jeff使用普通的UNION? –

+0

@BlackberryFan:默認情況下'UNION'不包含重複項。 'ALL'確保它們包含在內。從你的問題中不清楚你想要什麼,但是我假設後者(它也表現更好,因爲MySQL不必浪費資源來掃描這樣的重複結果)。 – eggyal

+0

@BlackberryFan:看[這個答案](http://stackoverflow.com/a/49928/623041)。 – eggyal

2

使用UNION

例如

SELECT p.id, p.emailContact FROM user_info p 
UNION 
SELECT b.id, b.emailContact FROM user_business_info b 
+0

嗨,感謝您的回覆,請參閱eggyal回答的問題 –

+0

Union All允許重複,如果您想複製然後使用它,如果您想要一個正式的聯盟,請不要使用它。這取決於你的用例。 –