我试图获得一个结果,当连接三个表时,该结果显示一个包含空值的完整表。我不断收到一个错误,指出我的语法在第2行和第3行上是错误的。“ select”下还有一条红色的弯曲行,所以我知道这是不正确的,但我不知道为什么。这三个表是学生,注册和课程。
select students.studentID, firstName, lastName,
courseName, grade
from students left join registration using studentID
left join registration using courseCode
order by students.studentID;
using
需要括号。此外,还不清楚为什么要两次连接registration
(没有表别名来区分两个联接的表,这会产生语法错误)。我认为您的意思是:
select students.studentID, firstName, lastName,
courseName, grade
from students left join registration using (studentID)
order by students.studentID;
但是,我强烈建议不要使用此语法。有关原理,请参见this SO post。
这是您的查询的新版本,具有常规的连接语法:
select s.studentID, s.firstName, s.lastName, r.courseName, r.grade
from students s
left join registration r on r.studentID = s.studentID
order by s.studentID;