在MySql中,如何选择与一列中的值匹配而与另一列中的值不匹配的记录?
我试图选择相同但网络价值不同的商品,例如:在MySql中,如何选择与一列中的值匹配而与另一列中的值不匹配的记录?,mysql,optimization,join,Mysql,Optimization,Join,我试图选择相同但网络价值不同的商品,例如: 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
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条记录,而这个查询需要花费很多时间,甚至都无法得到结果
有没有更好的办法
谢谢。试试这个:
SELECT MerchantID
FROM yourtable
GROUP BY MerchantID
HAVING COUNT(Distinct Network)>1
这应该更快,使用条件通常较慢的联接