我试图选择相同但具有不同“网络”值的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条记录,该查询需要大量时间(甚至无法获得结果)。
有什么更好的方法吗?
谢谢。
最佳答案
尝试这个:
SELECT MerchantID
FROM yourtable
GROUP BY MerchantID
HAVING COUNT(Distinct Network)>1
这应该更快,而使用
<>
条件的联接(通常)要慢。关于mysql - 如何选择与MySql中的一列中的值匹配而不在另一列中的值的记录?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14237969/