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

标签 mysql sql multiple-tables

我有 3 个表:Student、Course 和 StudentCourse,其中包含其他表中的 id 对,以显示哪些学生正在学习哪些类(class)。

我正在尝试显示注册类(class)的学生列表,但我不确定如何在单个 SQL 语句中传达该信息。

下面的代码只是为了展示我想要做什么,分为 3 个语句。

int cId =“从名称=someName的类(class)中选择id”;

int sId = "从 StudentCourse 中选择学生 ID,其中 courseId="+ cId;

最终声明:从 Student 中选择姓名,其中 StudentId="+ sId;

很抱歉这个菜鸟问题,我确实尝试过寻找解决方案,但找不到我想要的东西。

最佳答案

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

关于mysql - 根据另一个表中的不相关字段从一个表中选择字段(具有 id 值的桥接表将它们链接起来),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37533404/

相关文章:

mysql - 使用 EXISTS 通过 IN 编写查询

sql - 从一个表中选择匹配另一个条件的表?

mysql - 如何使用node执行mysql转储文件

PHP MySQL 结果仅按电话过滤

mysql - SQL从每个组中检索最大数

sql - 如何禁用mysql的匹配查询的50%排除

c# - 在 SQL Server 2008 中的多个表中插入数据

php - 需要 PHP 和 MySQL 方面的帮助

teradata - 大表与多表 - 标准化数据

mysql - 连接此表的正确 SELECT 语句是什么