sql—编写查询以查找选修cs220而没有其他课程的学生

wwtsj6pe  于 2021-07-27  发布在  Java
关注(0)|答案(1)|浏览(286)
SELECT s.*
FROM students s, student_enrollment se
WHERE s.student_no = se.student_no
AND s.student_no NOT IN ( SELECT student_no
                          FROM student_enrollment
                          WHERE course_no != 'CS220')

这就是解决办法。我想是这样的

AND s.student_no NOT IN ( SELECT student_no
                          FROM student_enrollment
                          WHERE course_no != 'CS220')

显示谁只上cs220和其他课程。不仅仅是给那些只学cs220的学生看。
这就是为什么我不明白为什么解决办法是这样的

y0u0uwnf

y0u0uwnf1#

使用“except”操作符。这将返回只使用cs220的学生。这将工作,只要你有一个干净的学生桌。

select distinct s.*
    from students s
    join student_enrollment se 
        on se.student_id = s.student_id
    where se.course_no = 'CS220'
    except 
    select distinct s.*
    from students s
    join student_enrollment se 
        on se.student_id = s.student_id
    where se.course_no <> 'CS220'

相关问题