2

编写一个查询,显示所有上课学生的学生名字、姓氏、课程编号和课程名称 - 使用 INNER Join。标记输出列 Student First、Student Last、Course Number 和 Course Name。你应该有 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

但它给了我一个错误未知列students.studentid in on 子句。

4

2 回答 2

2

您非常接近,缺少 和 之间的连接registration条件courses。你有一个奇怪的隐式和显式组合INNER JOIN。您的 join intocourses应该是另一个INNER JOIN通过registrationto加入的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。我会把这部分作业留给你解决。

标记输出列 Student First、Student Last、Course Number 和 Course Name

于 2012-11-16T03:02:08.003 回答
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做。

于 2012-11-16T03:02:14.550 回答