我有 3 个表:Student、Course 和 StudentCourse,其中包含其他表中的 id 对,以显示哪些学生正在学习哪些类(class)。
我正在尝试显示注册类(class)的学生列表,但我不确定如何在单个 SQL 语句中传达该信息。
下面的代码只是为了展示我想要做什么,分为 3 个语句。
int cId =“从名称=someName的类(class)中选择id”;
int sId = "从 StudentCourse 中选择学生 ID,其中 courseId="+ cId;
最终声明:从 Student 中选择姓名,其中 StudentId="+ sId;
很抱歉这个菜鸟问题,我确实尝试过寻找解决方案,但找不到我想要的东西。
最佳答案
可以使用JOIN
子句来做到这一点。这是一个示例,但提供表的实际定义和迄今为止您尝试过的任何查询以及一些示例表数据和您期望输出的示例将会有所帮助...
select s.Name
from Student s
join StudentCourse sc
on sc.StudentId = s.StudentId
join Course c
on c.CourseId = sc.CourseId
where c.CourseId = 123;
这是在查询中使用 JOIN
子句的基础知识。不过,如果我们有实际的表结构和一些示例数据,这将会有所帮助。
如果您有 CourseId
,那么您实际上不需要加入 Course
表(如果 CourseId
包含在StudentCourse
表,但如果您需要选择使用除主键 (CourseId
) 之外仅位于 Course
表中的其他内容,那么您需要加入它。
关于mysql - 根据另一个表中的不相关字段从一个表中选择字段(具有 id 值的桥接表将它们链接起来),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37533404/