三张表courses,registration,students
学生列
名字,姓氏,studentid,major,admitdate,graddate,gender,dob
注册中的列
courseid,studentid
类(class)中的列
类(class)编号,类(class)名称,学分
我需要修改的select语句
select lastname as 'Last Name',sum(credits) as 'Credits Registered For' from students as s
inner join registration as r on s.studentid = r.studentid
inner join courses as c on c.coursenumber = c.courseid
group by last name;
实验室的问题是...修改之前的查询以显示所有学生,即使他们尚未注册类(class)。你应该有 14 行。未注册的学生将在输出中显示 NULL。
我知道这需要某种外部连接,但我没有完全掌握这些连接我已经阅读了这里和其他网站上的多篇文章,但似乎无法弄清楚。
最佳答案
使用LEFT JOIN
select lastname as 'Last Name',
sum(credits) as 'Credits Registered For'
from students as s
LEFT join registration as r on s.studentid = r.studentid
LEFT join courses as c on c.coursenumber = r.courseid
group by last name;
关于mysql - SQL 外连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13410656/