简体   繁体   English

使用“联接表”的SQL SELECT

[英]SQL SELECT using a “join table”

  1. Table Student maps Student.student_name to Student.student_id StudentStudent.student_name映射到Student.student_id
  2. Table Course maps Course.course_name to Course.course_id 课程Course.course_name映射到Course.course_id
  3. Table Enrollment maps Enrollment.student_id to Enrollment.course_id (I've heard this referred to as a join table .) 招生地图Enrollment.student_idEnrollment.course_id(我听说这个被称为连接表 。)

What is the SELECT statement that, given a student name, will return his list of course names? 给定一个学生姓名,将返回其课程名称列表的SELECT语句是什么? I think this may be some of it: 我认为这可能是其中的一些:

SELECT c.course_name FROM Course c 
INNER JOIN Enrollment e ON c.course_id = e.course_id 
...
WHERE s.student_name = 'Tom';

Beyond that, I'm clueless. 除此之外,我一无所知。

(This isn't homework, it's just a simplification of a work problem.) (这不是家庭作业,只是工作问题的简化。)

SELECT c.course_name FROM Enrollment e 
INNER JOIN Course c ON c.course_id = e.course_id 
INNER JOIN Student s ON s.student_id = e.student_id 
WHERE s.student_name = 'Tom';

also

SELECT c.course_name 
FROM Enrollment e, Course c, Student s
WHERE c.course_id = e.course_id 
  AND s.student_id = e.student_id 
  AND s.student_name = 'Tom';

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM