我试着寻找一个答案,但我真的找不到一个符合我所寻找的。
我正在制作一个小的web应用程序,允许管理员创建课程材料和测试,用户将被分配。
我想弄清楚的是,被分配了课程的用户如何通过单击按钮访问该课程。
我创建了一个存储用户信息的表,其中用户id是主键。我有一个课程表,它存储所有的材料和课程的测试,课程id是该表的主键。
我制作了第三个表,它是一个指定的表,它包含两个外键。一个引用用户表中的用户id,另一个引用课程表中的课程id。
我插入了一些图片来说明你的意思。
我不太明白如何使用sql语法来根据指定的课程表提取课程材料并进行测试。
感谢所有反馈。这是引用用户id(id)和课程id(u\u id)的两个外键
2条答案
按热度按时间kmbjn2e31#
不知道你有什么列名,所以我用了
*
相反。你可以用JOIN
(又名INNER JOIN
)将表格链接在一起。在两个表的主键上进行联接。我创建了一个存储用户信息的表,其中用户id是主键。我有一个课程表,它存储所有的材料和课程的测试,课程id是该表的主键。
我曾经
id
对于用户表和course_id
课程表。根据需要更换。查找给定用户的所有课程。
查找给定课程的所有用户。
编辑#1-不带联接的子查询
谢谢你的反馈,正如我上面说的,我希望避免加入。
我强烈建议你学会加入。当您需要查询多个表时,它们是必不可少的。在这种情况下,您可以使用子查询为用户查找匹配的课程,但不能同时访问该用户数据;这就是连接的力量。下面我将包含最后一个示例,演示如何同时获取课程和用户数据。
查找给定用户的所有课程(使用子查询)
最后一个示例显示与用户相关的课程(多对多)
h5qlskok2#
在我看来,您似乎想使用sql联接语法,如下所示:
更换
column1,2,3
用实际列名替换foreign_key_name
子表中外键的实际名称与user_primary_key
您可以在这里找到其他一些mysql连接示例至于如何将它们实现到html或php文件中,这是一个非常不同的问题,需要更多地了解如何在表单中设置代码
一个非常用户友好的地方是,这里可能有助于提取数据,只要确保您知道为您的代码使用准备好的语句