mySQL:如何处理3个不同的表,在每个表中引用不同的列,但使用主键

mySQL:如何处理3个不同的表,在每个表中引用不同的列,但使用主键,mysql,sql,join,foreign-keys,primary-key,Mysql,Sql,Join,Foreign Keys,Primary Key,我试图找出哪些学校的学生在2018年没有完成考试。所以我设置了三个表:testfo,ExamEntry和学生。我将尝试使用testfo表从Students表中获取信息,但我显然只想要2018年未完成考试的学生信息。注:我正在寻找参加考试的学生,尽管他们没有完成考试,但通过这项考试,你可以将已完成的考试视为通过考试 在ExamInfo中,我有以下列: ExamInfo_Date --when exam took place, using to get year() condition ExamIn

我试图找出哪些学校的学生在2018年没有完成考试。所以我设置了三个表:
testfo
ExamEntry
学生
。我将尝试使用
testfo
表从
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_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
;
我甚至不确定是否需要查看
考试表。我确信我注定要使用连接,但不确定如何正确使用它。此外,对于我的3个不同的SELECT列,我只希望输出Students_School列:

Students_School
---------------
Applederry
Barnet Boys
...

显然,您需要一个
连接
——实际上是两个。您的表包含考试、学生和表示这些实体之间多对多关系的连接/关联表

因此,我希望
FROM
子句如下所示:

FROM ExamInfo e JOIN
     ExamEntry ee
     ON ee.ExamEntry_ExamNo = e.ExamNo JOIN
     Students s
     ON ee.ExamEntry_StudentId = s.Students_Id

那个连接中的ON子句呢?