SQL查看一个学生的所有课程

Jar*_*myr 3 mysql sql select foreign-keys

我有3张桌子

table_student
ID,名字,姓氏

table_courses
ID,course_name

table_student_course
ID,student_ID,course_ID,date_taken

我想要做的就是按ID = 1的学生按course_name和date_taken列出所有课程

有人请?

Mah*_*esh 5

您需要使用JOINon table_coursestable_student_coursetables然后应用Order Byon cource_name来按课程名称排序.并且为了选择特定的学生,将该Where子句应用为过滤器.

  SELECT 
      t.course_name,
      tsc.date_taken 
  FROM 
      table_courses t INNER JOIN table_student_course tsc
          ON t.ID = tsc.course_ID
  WHERE
      tsc.student_ID = 1
  ORDER BY 
       t.course_name
Run Code Online (Sandbox Code Playgroud)

如果您还想从查询中获取学生详细信息,那么您需要加入以下3个表格,

SELECT s.firstname, s.lastname, c.course_name, sc.date_taken 
FROM table_courses c 
INNER JOIN table_student_course sc ON c.ID = sc.course_ID
INNER JOIN table_student s ON sc.student_ID = s.ID
WHERE sc.student_ID = 1
ORDER BY c.course_name
Run Code Online (Sandbox Code Playgroud)

  • 谢谢你的拼写错误.我想知道这就是downvote的原因.Downvoter必须是相当不错的英语老师.:) (6认同)