2013-01-09 30 views
0

我想選擇是相同的,但有不同的網絡價值觀MerchantIDs,例如:如何選擇匹配一列中的值並且不在MySql的其他列中的記錄?

ID MerchantID Network 
1 1   A 
2 1   A 
3 2   B 
4 2   C 
5 3   D 
6 3   D 

在這種情況下,我想查詢返回「2」(因爲它是具有唯一MERCHANTID不同的網絡)。

到現在爲止,我有以下查詢:

SELECT a.MerchantID 
FROM  table a 
JOIN table b 
ON a.ID = b.ID 
AND a.Network <> b.Network 
AND a.MerchantID = b.MerchantID 
GROUP BY a.MerchantID 

事情是表有大約〜43000的記錄和查詢需要大量的時間(還沒有連能夠得到的結果)。

有沒有更好的方法嗎?

謝謝。

回答

2

試試這個:

SELECT MerchantID 
FROM yourtable 
GROUP BY MerchantID 
HAVING COUNT(Distinct Network)>1 

這應該是更快,加入在使用<>條件(通常)慢。

+0

謝謝!...這樣做了 – content01

相關問題