gpt4 book ai didi

sql - 已参加学位类(class)每门类(class)考试的学生

转载 作者:行者123 更新时间:2023-11-29 13:42:35 25 4
gpt4 key购买 nike

我一直在尝试采用“不存在”的方法来隔离答案,但我认为我走得太深了。我仅限于在我的数据库类介绍中使用非常基本的东西。所以,基本上只有 INNER JOIN、UNION 和 CASE,也许还有一些其他的东西,但最好假设是最基本的东西。我们还不允许使用 coalesce。

最佳答案

不确定仅使用 INNER JOIN、UNION 和 CASE 是否可行 -> 但我找到了一个使用外部连接的解决方案(仍然非常简单)。

让我们尝试分两步解决这个问题。

1) 让我们看看哪些学生没有完成所有类(class)

select s.code
from programs p inner join students s on (p.degree = s.degree)
left outer join exams e on (e.course = p.course and e.student = s.code)
where e.course is null

我们加入学生的类(class),然后左外加入考试,只过滤那些没有考试行可以匹配的行(这意味着学生还没有参加考试)

2) 我们得到所有没有被这个查询返回的学生(意味着他们已经完成了所有必修类(class))

select
code, name
from student where code not in (

select s.code
from programs p inner join students s on (p.degree = s.degree)
left outer join exams e on (e.course = p.course and e.student = s.code)
where e.course is null

)

关于sql - 已参加学位类(class)每门类(class)考试的学生,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53053400/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com