mysql - 使用 "join table"的 SQL SELECT

标签 mysql sql join

  1. 学生Student.student_name映射到Student.student_id
  2. 类(class)Course.course_name映射到Course.course_id
  3. EnrollmentEnrollment.student_id映射到Enrollment.course_id(我听说这被称为联接表.)

给定学生姓名后,将返回其类(class)名称列表的 SELECT 语句是什么?我想这可能是其中的一部分:

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

除此之外,我一无所知。

(这不是作业,只是工作问题的简化。)

最佳答案

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';

还有

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';

关于mysql - 使用 "join table"的 SQL SELECT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17636943/

相关文章:

PHP - 在文本框中显示特定数据

mysql - ALTER TABLE 添加新列并使其与现有列组合唯一

.net - 如何在桌面 .NET 应用程序中存储数据?

mysql - 找出最大的单个数

mysql - 查询是否可以改进,因为它会出现超时异常

mysql - 如何使用左连接来统计mysql中除第一个结果之外的结果数?

php - MSQLI 选择自

php - Postgres - 从数组中选择元素

php - 我如何左连接 3 个表并为 3 个不同表中的多个字段创建变量?

sql - MYSQL 连接,仅从使用 OR 的连接条件返回第一个匹配行