我试图在sqlite中使用自联接写一个简单的查询.我想要所有成本相同的产品ID,但我想要唯一的对(即不要列出相同的对,甚至不同的顺序).
这就是我所得到的:
这就是我所得到的:
SELECT b1.Id,b2.Id FROM Basic AS b1 LEFT JOIN Basic AS b2 ON b1.cost = b2.cost WHERE b1.Id != b2.Id AND b1.Cost = 5;
所以我得到一些东西
23 | 101 23 | 205 24 | 103 101 | 23 <-- Duplicate!
我尝试了DISTINCT和GROUP BY的不同组合,但是我仍然会得到重复的对:
我已经尝试过类似的东西
SELECT DISTINCT bp1.Id,bp2.Id …
&安培;
… = 5
GROUP BY bp1.Id,bp2.Id;
如何摆脱重复对?有任何想法吗?
我会感谢你的帮助!
解决方法
更改!=到<在您的WHERE子句中,确保最低ID始终位于第一位:
WHERE b1.Id < b2.Id