sql – 在自联接中选择唯一的对
发布时间:2020-12-12 16:42:51 所属栏目:MsSql教程 来源:网络整理
导读:我试图在sqlite中使用自联接写一个简单的查询.我想要所有成本相同的产品ID,但我想要唯一的对(即不要列出相同的对,甚至不同的顺序). 这就是我所得到的: SELECT b1.Id,b2.IdFROM Basic AS b1LEFT JOIN Basic AS b2ON b1.cost = b2.costWHERE b1.Id != b2.IdAND
我试图在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 … &安培; 如何摆脱重复对?有任何想法吗? 我会感谢你的帮助! 解决方法更改!=到<在您的WHERE子句中,确保最低ID始终位于第一位:WHERE b1.Id < b2.Id (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |