sqlite - 与自身联合表并打印独特的对
问题描述
我正在尝试自行加入一张桌子并打印一对住在同一栋楼里的公民
SELECT DISTINCT a.citizen AS, b.citizen, a.home
FROM table_citizen a, table_citizen b
WHERE a.home = b.home
GROUP BY a.citizen
ORDER BY a.citizen
但是,这会同时返回
citizenA citizenB Hilton
citizenB citizenA Hilton
但我只想保留一对,因为这只是相同的结果。我做了类似的事情
FROM (SELECT DISTINCT table_citizen a), table_citizen b
但这似乎不起作用..
TIA
解决方案
ON
您应该使用包含条件的子句进行适当的连接,a.citizen < b.citizen
以便您只获得每对一次:
SELECT a.citizen AS citizen1, b.citizen AS citizen2, a.home
FROM table_citizen a INNER JOIN table_citizen b
ON a.home = b.home AND a.citizen < b.citizen
ORDER BY citizen1
没有必要使用GROUP BY
.
查看简化的演示。
推荐阅读
- javascript - 相互堆叠的 HTML 图像未在网格中显示
- java - SaxBuilder 或 jaxb 中的 XML 模式验证?
- powerbi - 在 Power BI 中形成动态度量
- reactjs - 使用 Reactjs 将后端链接到前端
- python - 在 visuaæ studio 中导入图标
- amazon-web-services - Vaadin 不能在没有粘性会话的情况下在云中使用?
- google-apps-script - 我想从包含多行的 Google 电子表格中的数据创建一个文档
- java - 无法打开指定的 zip 条目源流
- css - 如何制作带有弯曲顶部边框的页脚?
- visual-studio - Visual Studio 17/19 代码样式仅适用于某些行