我正在努力找出哪些学校的学生在2018年没有完成考试。我准备了三张table: ExamInfo
, ExamEntry
以及 Students
. 我要试着用 ExamInfo
表以从 Students
不过,我显然只想要2018年没有完成考试的学生信息。注意:我在找参加过考试的学生,虽然他们没有完成考试,但这次考试你可以把完成的考试看作通过了考试。
内 ExamInfo
我有专栏:
ExamInfo_Date --when exam took place, using to get year() condition
ExamInfo_ExamNo --unique student exam ID used to connect with other tables
ExamInfo_Completed --1 if completed, 0 if not.
...
内 ExamEntry
我有相关的专栏:
ExamEntry_ExamNo --connected to ExamInfo table
ExamEntry_StudentId --unique studentId used to connect to Students table
ExamEntry_Date -- this is same as ExamInfo_Date if any relevance.
...
内 Students
我有以下专栏:
Students_Id --this is related to ExamEntry_StudentId, PRIMARY KEY
Students_School --this is the school of which I wish to be my output.
...
我希望我的输出只是一个名单,所有学校的学生没有完成他们的考试在2018年。尽管我的问题是如何从考卷表中找出那些学生没有完成考试的学校。
到目前为止,我已经:
SELECT a.Students_School, YEAR(l.ExamInfo_Date), l.ExamInfo_Completed
FROM ExamInfo l ??JOIN?? Students a
WHERE YEAR(l.ExamInfo_Date) = 2018
AND l.ExamInfo_Completed = 0
;
我甚至不确定是否要通过 ExamEntry
table是必要的。我确信我应该使用join,但不确定如何恰当地使用它。另外,对于我的3个不同的select列,我只希望输出students\u school列:
Students_School
---------------
Applederry
Barnet Boys
...
1条答案
按热度按时间z6psavjg1#
显然,你需要一个
JOIN
--实际上是两个。您的表包含考试、学生和表示这些实体之间多对多关系的连接/关联表。所以,我希望
FROM
子句看起来像: