根据另一个 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) 之外的其他内容,那么您需要加入它。