考虑下表:MySQL的SELECT左外连接涉案金额超过2个表
学生((PK)studentID,名字,姓氏,性别,出生日期)
课程((PK)courseCode, courseName,classLevel,信用)
注册((PK,FK)studentID,(PK,FK)courseCode,等级)
我想写的是抓住INF查询Ø为每一个学生(Students.studentID,Students.firstName,Students.lastName),他们的课程信息(Courses.courseName)和等级(Registration.grade),包括谁学生AREN没有注册类的课程名称和成绩栏中为这些学生返回空值。
据我所知(我还在学习很多),这将需要类似:
Students LEFT OUTER JOIN [some aggregate of Courses and Registration]
但我不知道如何使用MySQL的句法进行格式化。
这里是我已经有了:
SELECT S.studentID, S.firstName, S.lastName, C.courseName, R.grade
FROM Courses AS C, Students AS S
LEFT OUTER JOIN Registration AS R ON S.studentID = R.studentID
AND R.courseCode = C.courseCode
ORDER BY S.studentID
;
我知道这不好,我得到一个“未知列C.courseCode”的错误,所以,语法显然是关闭的,但这是接近我所能达到我认为需要的样子。
感谢您的帮助。我仍然试图将我在SQL中的工作从我在C中的背景中分离出来(这不断让我兴奋不已)。这工作完美。 何时何时建立别名时不使用“AS”有什么区别?它只是喜欢什么时候缩进等 – user3776749
“可选的。大多数程序员将指定AS关键字时,别名列名,但不别名时表别名。” (见http://www.techonthenet.com/mysql/alias.php) –