带有JOIN和SELECT的SQLite数据库
我有一个数据库问题,基本上一门课程可以有许多模块,这些模块可以在每一门课程上。所以课程1可以包含模块1和模块2,但课程2可能只包含模块2。我希望在modules表中使用JSON来存储时间表信息 我希望能够获得每门课程的模块列表 我想做的是从模块中选择*,其中moduleID在SELECT moduleID在courseName=UserSpecifiedCourse的课程中 我想让它返回modules表中的所有行,它们的ID与用户选择的课程匹配 这会带来什么回报,有没有更好的方法带有JOIN和SELECT的SQLite数据库,sql,sqlite,Sql,Sqlite,我有一个数据库问题,基本上一门课程可以有许多模块,这些模块可以在每一门课程上。所以课程1可以包含模块1和模块2,但课程2可能只包含模块2。我希望在modules表中使用JSON来存储时间表信息 我希望能够获得每门课程的模块列表 我想做的是从模块中选择*,其中moduleID在SELECT moduleID在courseName=UserSpecifiedCourse的课程中 我想让它返回modules表中的所有行,它们的ID与用户选择的课程匹配 这会带来什么回报,有没有更好的方法 由于tbl_模
由于tbl_模块和tbl_课程之间存在多对多关系,您应该删除ModuleId列并创建一个新的关系表: tbl_模块与课程关系:
courseName moduleID
Cpting with games 1
Cpting with games 2
Cpting 1
courseID moduleID
1 1
1 2
2 1
您的查询将变成:
SELECT * from modules where moduleID in (select moduleID from tbl_module_course_relations where courseName = USERSPECIFEDCOURSE);
实际上,最好在每个表中添加id列,并依赖它来处理关系表和外键
tbl_课程:
courseID courseName
1 Cpting with games
2 Cpting
tbl_模块与课程关系:
courseName moduleID
Cpting with games 1
Cpting with games 2
Cpting 1
courseID moduleID
1 1
1 2
2 1
以及查询:
SELECT * from modules where moduleID in (select tbl_module_course_relations.moduleID from tbl_module_course_relations, courses where tbl_module_course_relations.courseID = courses.courseID and courses.courseName = USERSPECIFEDCOURSE);
这正是我需要的。非常感谢你。