Php 如何从关系数据库中的多值属性中检索数据?

Php 如何从关系数据库中的多值属性中检索数据?,php,mysql,database,database-design,relational-database,Php,Mysql,Database,Database Design,Relational Database,以下是我的数据库,包含4个表(学生、课程、模块、讲师)。我想知道这个数据库是否正确,如果我做得对,我如何使用学生id从表中检索数据,如下所示 学生10122342的模块是什么 有 >>预期答案:cn103、cn201 下一件事是我想从上面的表中导入一些值到新创建的表中?情况是,我希望在新装箱的名为“Everyone”的表的“id”属性中从上述表导入“s_id”和“I_id”;同时,我还希望为“Everyone”表的“type”属性生成“0”/“1”值,其中从“s_id”导入的id为0,从“

以下是我的数据库,包含4个表(学生、课程、模块、讲师)。我想知道这个数据库是否正确,如果我做得对,我如何使用学生id从表中检索数据,如下所示

  • 学生10122342的模块是什么 有 >>预期答案:cn103、cn201

下一件事是我想从上面的表中导入一些值到新创建的表中?情况是,我希望在新装箱的名为“Everyone”的表的“id”属性中从上述表导入“s_id”和“I_id”;同时,我还希望为“Everyone”表的“type”属性生成“0”/“1”值,其中从“s_id”导入的id为0,从“I_id”导入的其余id为1。下面是我期望的新数据库表

Everyone
id       |type |
-----------------
10122345 | 0   |
10122342 | 0   |
10222346 | 0   |
20432343 | 1   |
20432311 | 1   |
20532334 | 1   |

有人能帮我吗?可以使用mysql和php吗?谢谢。

这应该是您第一个问题的答案:

SELECT m_code FROM Module a INNER JOIN Student b ON a.c_code = b.c_code WHERE b.s_id = '10122342'

我想不出你的第二个问题的答案,虽然应该是关于连接的问题,但这可能会有所帮助:

为什么要执行上述操作?如果学生ID和讲师ID重叠怎么办?似乎在这种表结构中,每个学生只能注册一门课程。此外,外键中以逗号分隔的值不是好的做法。您将如何在查询中使用联接来调用它?如果在表中有逗号分隔的值,则单独的表是一个好的标志。考虑有单独的表将表连接在一起。例如,有一个表,其中只包含一个学生id和一个课程id,代表哪些学生正在学习哪些课程。通过这种方式,你可以让每个学生参加多个课程,每个课程可以由多个学生参加。是的,我理解这是错误的。一名学生只选修一门课程,而一门课程有多个模块——这里的一些模块在多个课程上。这就是我遇到问题的原因,我期待某种解决方案,如字符串比较或检索所有数据。现在,如果我使用下面答案1中@jeroen offerijns的解决方案,它只显示分配给一门课程的一个模块(cn103)。它只给出“cn103”,它还假设检索“cn201”?模块表中c_代码列的数据类型是什么?
SELECT m_code FROM Module a INNER JOIN Student b ON a.c_code = b.c_code WHERE b.s_id = '10122342'