根据另一个 table 中不相关的字段从一个 table 中选择字段(具有 id 值的桥 Table 链接它们)
Selecting fields from one table based on unrelated fields from another table (Bridge Table with id values links them)
我有 3 个表:Student、Course 和 StudentCourse,其中包含来自其他表的 ID 对,以显示哪些学生正在选修哪些课程。
我正在尝试显示已注册某门课程的学生列表,但我不确定如何在单个 SQL 语句中表达这一点。
下面的代码只是为了展示我想做的事情,分为 3 个语句。
int cId = "select id from course where name=someName";
int sId = "select studentId from StudentCourse where courseId=" + cId;
最终陈述:select 学生姓名 where studentId=" + sId;
抱歉这个菜鸟问题,我确实尝试过搜索解决方案,但找不到我要找的东西。
可以用 JOIN
子句来做到这一点。这是一个示例,但提供您的 table 的实际定义和您迄今为止尝试过的任何查询,以及一些示例 table 数据和您的示例会有所帮助期待输出...
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
子句的基础知识。不过,如果我们有实际的 table 结构和一些示例数据,那将会有所帮助。
如果你有CourseId
,那么你真的不需要加入Course
table,如果CourseId
包含在[=16] =] table,但是如果您需要 select 使用仅位于 Course
table 中的除主键 (CourseId
) 之外的其他内容,那么您需要加入它。
我有 3 个表:Student、Course 和 StudentCourse,其中包含来自其他表的 ID 对,以显示哪些学生正在选修哪些课程。
我正在尝试显示已注册某门课程的学生列表,但我不确定如何在单个 SQL 语句中表达这一点。
下面的代码只是为了展示我想做的事情,分为 3 个语句。
int cId = "select id from course where name=someName";
int sId = "select studentId from StudentCourse where courseId=" + cId;
最终陈述:select 学生姓名 where studentId=" + sId;
抱歉这个菜鸟问题,我确实尝试过搜索解决方案,但找不到我要找的东西。
可以用 JOIN
子句来做到这一点。这是一个示例,但提供您的 table 的实际定义和您迄今为止尝试过的任何查询,以及一些示例 table 数据和您的示例会有所帮助期待输出...
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
子句的基础知识。不过,如果我们有实际的 table 结构和一些示例数据,那将会有所帮助。
如果你有CourseId
,那么你真的不需要加入Course
table,如果CourseId
包含在[=16] =] table,但是如果您需要 select 使用仅位于 Course
table 中的除主键 (CourseId
) 之外的其他内容,那么您需要加入它。