我有3个表:学生,课程和学生课程,其他表中有id对,以显示哪些学生正在学习哪些课程。
我试图显示在课程中注册的学生列表,但我不确定如何在单个SQL语句中表达这一点。
下面的代码只是为了展示我想要做的事情,分成3个陈述。
int cId ="从name = someName&#34 ;;
中选择idint sId ="从StudentCourse中选择studentId,其中courseId =" + cId;
最终陈述:从学生中选择姓名,其中studentId =" + sId;
对于noob问题我很抱歉,我确实尝试过寻找解决方案,但无法找到我想要的东西。
答案 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
表中的其他内容,然后您需要加入它。