【发布时间】:2012-10-18 02:42:37
【问题描述】:
下周我有一个关于数据库的大学实习。我需要围绕一所大学的计划创建 15 个查询,如下所示:
- 学生(学生编号、名字、姓氏、性别、出生日期、地址、级别、学位代码)
- 学位(Degree_Code、Degree_Name、School_Name)
- 模块(Module_Code、Module_Title、School_Name)
- 学校(School_Name,教师,校长)
- Take_Exam(Student_No, Module_Code, Mark)
我已经完成了 14 个查询,但我被困在这个查询上:
- 检索参加每个模块的学生的姓名。 (提示。use 不存在)。
我一直在阅读不存在的查询,但我什至不知道从哪里开始! 我创建了这段代码:
select students.student_no, fname, lname, count(module_code)
from students left join take_exam using (student_no)
group by student_no
having count(module_code) < 19
order by lname;
这将返回所有未完成所有 19 个模块的学生。但是,我讨厌代码,因为它涉及到
谁能指出我正确的方向并指导我使用“不存在”查询?
谢谢,安德鲁
【问题讨论】:
-
提示:你需要第二个不存在。 (没有他/她没有服用过的mudule)
-
@wildplasser:老实说,这就是我所担心的!从来没有用过一个,更不用说两个了。谢谢你的建议。
-
一旦你完成了,这一切似乎都是微不足道的。 NOT EXISTS 非常接近自然语言/逻辑。
标签: mysql sql not-exists