0

我正在尝试选择相同但具有不同 Networks 值的 MerchantID,例如:

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

事情是表有大约 43,000 条记录,并且该查询需要很多时间(甚至无法获得结果)。

有没有更好的方法呢?

谢谢。

4

1 回答 1

2

尝试这个:

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

这应该更快,使用<>条件的连接(通常)更慢。

于 2013-01-09T14:57:12.350 回答