2013-01-09 29 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

相关问题