根据另一个表中不相关的字段从一个表中选择字段(具有id值的桥接表链接它们)

时间:2016-05-30 20:41:00

标签: mysql sql multiple-tables

我有3个表:学生,课程和学生课程,其他表中有id对,以显示哪些学生正在学习哪些课程。

我试图显示在课程中注册的学生列表,但我不确定如何在单个SQL语句中表达这一点。

下面的代码只是为了展示我想要做的事情,分成3个陈述。

int cId ="从name = someName&#34 ;;

中选择id

int sId ="从StudentCourse中选择studentId,其中courseId =" + cId;

最终陈述:从学生中选择姓名,其中studentId =" + sId;

对于noob问题我很抱歉,我确实尝试过寻找解决方案,但无法找到我想要的东西。

1 个答案:

答案 0 :(得分:1)

可以使用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表,但是如果您需要选择仅使用除主键(Course)之外的CourseId表中的其他内容,然后您需要加入它。