17,382
社区成员




WITH T AS(
SELECT 'S001' AS SNO, 'C001' AS CNO FROM DUAL
UNION ALL
SELECT 'S002' AS SNO, 'C001' AS CNO FROM DUAL
UNION ALL
SELECT 'S003' AS SNO, 'C001' AS CNO FROM DUAL
UNION ALL
SELECT 'S004' AS SNO, 'C001' AS CNO FROM DUAL
UNION ALL
SELECT 'S001' AS SNO, 'C002' AS CNO FROM DUAL
UNION ALL
SELECT 'S002' AS SNO, 'C002' AS CNO FROM DUAL
UNION ALL
SELECT 'S003' AS SNO, 'C002' AS CNO FROM DUAL
UNION ALL
SELECT 'S001' AS SNO, 'C003' AS CNO FROM DUAL
)
SELECT DISTINCT SNO FROM T
WHERE SNO != 'S001' --2.找出其他同学的课程
AND EXISTS --3.其他同学的课程是否存在与S001同学相同的,存在就X选出来
(SELECT 1 FROM
(SELECT * FROM T WHERE SNO = 'S001') T1 --1.找出S001所学课程
WHERE T.CNO = T1.CNO)--3.其他同学的课程是否存在与S001同学相同的课程
--4.结果再与学生表连接