编写一个显示学生姓名,姓氏,课程编号和课程名称的查询 对于所有上课的学生 - 使用INNER加入。标记输出列Student First,Student Last, 课程编号和课程名称。你应该有7行。
是我实验室的问题。
有三个表学生,课程,注册
我可以通过
获取在课程中注册的学生的姓名select firstname,lastname from students
inner join on registration students.studentid=registration.studentid
但是当我试图获取老师想要从课程表中返回的其他数据时它不起作用我尝试了一百万件但是对我来说有意义的是
select firstname,lastname,coursenumber,coursename from students,courses
inner join registration on students.studentid=registration.studentid
但它给了我一个错误的未知专栏学生。在课程中学习。
答案 0 :(得分:2)
你非常接近,错过了registration
和courses
之间的加入条件。你有一个奇怪的隐式和显式INNER JOIN
混合。您与courses
的加入应该是另一个INNER JOIN
,通过registration
加入students
。
SELECT
firstname, /* <-- don't forget to label your columns as required */
lastname,
coursenumber,
coursename
FROM
students
/* `students` map into courses via many-to-many relation in `registration` */
INNER JOIN registration on students.studentid = registration.studentid
/* Inner join through `registration` into `courses` */
INNER JOIN courses ON registration.courseid = courses.courseid
不要忘记列别名以满足列输出命名要求。使用AS
列表中的SELECT
关键字。我会留下这部分作业给你解决。
标记输出列学生优先,学生最后,课程编号和课程名称
答案 1 :(得分:0)
select firstname,lastname,coursenumber,coursename from students
inner join registration on students.studentid=registration.studentid
JOIN courses ON courses.courseid = registration.courseid
您在查询中提到courses
,但您没有join
任何内容。