2016-05-30 40 views
0

我有3个表格:Student,Course和StudentCourse,它们具有来自其他表格的id对以显示哪些学生正在服用什么课程。基于来自另一个表的无关字段从一个表中选择字段(具有id值的桥表链接它们)

我试图显示一个课程中注册的学生列表,但我不知道如何在单个SQL语句中传达该列表。

下面的代码只是为了显示我想要做的事情,分成3个语句。

int cId =“select name from course where name = someName”;

int sId =“select StudentId from StudentCourse where courseId =”+ cId;

最后陈述:从学生选择名称,其中studentId =” + SID;

对不起,noob问题,我没有真正尝试寻找解决的办法,但不能完全找到我一直在寻找

回答

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),那么你需要加入它。

+0

谢谢你,工作!我确实需要加入课程表,以及我选择的课程名称,而不是ID。 – slash

相关问题