如何从同一个表中选择不同的元组?

时间:2014-10-12 17:25:29

标签: sql database oracle

如何从同一个表中选择不同的元组?我想找到一对在2个或更多课程中一起注册的学生。

表架构:注册(sid *,dname *,cno *,sectno *,grade)

1 个答案:

答案 0 :(得分:2)

您可以执行自我加入。请注意,您必须在sid上添加一个条件,这样您就不会将这些条件加倍(例如,获取[1, 3][3, 1])。在这里,我决定左侧应该总是较低的数字,但你也可以采取另一种方式:

SELECT   a.sid, b.sid
FROM     enroll a
JOIN     enroll b ON a.cno = b.cno AND a.sid < b.sid
GROUP BY a.sid, b.sid
HAVING   COUNT(*) >= 2