2016-09-23 119 views
-1

這裏的東西: 我有兩個表。一個包含客戶與網站和另一個表包含客戶的optionnal網站。SQL合併2結果在一個

我想知道是否有在2臺

例如dupplicate網站:

表A:

cust_id cust_website 
1   [email protected] 
2   [email protected] 
3   [email protected] 
4   [email protected] 
5   [email protected] 
... 

tableB的

cust_id cust_optionnalWebsite 
3   [email protected] 
4   [email protected] 
... 

我想在桌面擁有所有重複的網站eA,表B和表AB。嗯,dupplicate ..

我開始這樣做:

SELECT cust_website FROM tableA WHERE cust_website IN (SELECT cust_optionnalWebsite FROM tableB UNION SELECT cust_website FROM tableA) GROUP BY cust_website HAVING COUNT(cust_website) > 1 

但UNION語句採用SOOO多的時間,顯然,它失去了一些東西......

我也試過更換UNION通過OR語句,但是如果tableA和tableB中有相同的網站,它不會只有兩個結果,而只有一個。

,我要的是

網站
[email protected]
[email protected]

請幫忙輸出,

謝謝

編輯:

最後這個作品:

SELECT website FROM (SELECT cust_optionnalWebsite as website FROM tableB UNION ALL SELECT cust_website as website FROM tableA) GROUP BY website HAVING(website)>1; 
+0

如果查詢時間過長,請嘗試使用索引進行優化 – Jens

+1

您能向我們顯示您想要的輸出嗎? –

+0

我添加了我想要的輸出 –

回答

1

SQL合併2得出一個結果:

1.) use UNION ALL 

有很多的原因在執行查詢時,爲什麼你越來越慢。

1.) Machine specs. 
2.) Database Structure. 
3.) Indexes. 
4.) Database Software it self. 
+0

然後你會怎麼做 – Drew

+0

謝謝你的回覆,但是UNION ALL真的很慢...我不能接受 –

+0

直到你告訴我們,否則,這似乎是要走的路。 –