【发布时间】:2015-11-05 01:27:56
【问题描述】:
给定以下表格:
学生((PK)学生ID、名字、姓氏、性别、出生日期)
课程((PK)courseCode、courseName、classLevel、学分)
Registration((PK,FK)studentID, (PK,FK)courseCode, Grade)
我想编写一个查询来获取每个学生的信息(Students.studentID、Students.firstName、Students.lastName)、他们的课程信息 (Courses.courseName) 和成绩 (Registration.grade),包括未注册课程的学生在这些学生的课程名称和成绩列中返回空值。
据我所知(我仍在学习很多东西),这将需要以下内容:
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”错误,所以语法显然是错误的,但这已经尽可能接近我认为它需要的样子了。
【问题讨论】: