尝试连接三个表时如何解决错误“ sql语法问题”?

问题描述 投票:0回答:1

我试图获得一个结果,当连接三个表时,该结果显示一个包含空值的完整表。我不断收到一个错误,指出我的语法在第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;
mysql join select syntax left-join
1个回答
0
投票

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;
© www.soinside.com 2019 - 2024. All rights reserved.