我正在尝试选择相同但具有不同网络值的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条记录,而且查询需要很多时间(甚至无法得到结果)。
有没有更好的方式呢?
感谢。
答案 0 :(得分:2)
试试这个:
SELECT MerchantID
FROM yourtable
GROUP BY MerchantID
HAVING COUNT(Distinct Network)>1
这应该更快,使用<>
条件的连接(通常)更慢。