【发布时间】:2020-02-16 10:18:06
【问题描述】:
我解决了 Lagunita Stanford 的 SQL 练习,我在第 3 题(SQL 社交网络查询练习)处停下来。我不知道如何从我的查询结果中删除反向重复:
Gabriel 9 | Cassandra 9
------------------------------
Cassandra 9 | Gabriel 9
------------------------------
Jessica 11 | Kyle 12
------------------------------
Kyle 12 | Jessica 11
答案应该是:
Cassandra 9 | Gabriel 9
------------------------------
Jessica 11 | Kyle 12
这是我的代码:
SELECT h1.name,
h1.grade,
h2.name,
h2.grade
FROM likes AS likes1
INNER JOIN likes AS likes2
ON likes1.id1 = likes2.id
AND likes1.id2 = likes2.id1
INNER JOIN highschooler AS h1 ON likes1.id1 = h1.id
INNER JOIN highschooler AS h2 ON likes2.id1 = h2.id
表: https://lagunita.stanford.edu/c4x/DB/SQL/asset/socialdata.html
而且我不能使用窗口函数和 cte 的。
我很好奇这是否可以删除同一查询中的重复项。
【问题讨论】:
-
简化问题。不要在此查询中加入 highschooler 表。只专注于删除
likes表中的重复项,然后将结果作为子查询加入 highschooler。虽然不允许窗口函数和 CTE,但我假设允许子查询? -
他们是。您对简化是正确的,但这并没有改变我问题的核心。我仍然需要删除反向重复项。
标签: sql sqlite duplicates