Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有JOIN和SELECT的SQLite数据库_Sql_Sqlite - Fatal编程技术网

带有JOIN和SELECT的SQLite数据库

带有JOIN和SELECT的SQLite数据库,sql,sqlite,Sql,Sqlite,我有一个数据库问题,基本上一门课程可以有许多模块,这些模块可以在每一门课程上。所以课程1可以包含模块1和模块2,但课程2可能只包含模块2。我希望在modules表中使用JSON来存储时间表信息 我希望能够获得每门课程的模块列表 我想做的是从模块中选择*,其中moduleID在SELECT moduleID在courseName=UserSpecifiedCourse的课程中 我想让它返回modules表中的所有行,它们的ID与用户选择的课程匹配 这会带来什么回报,有没有更好的方法 由于tbl_模

我有一个数据库问题,基本上一门课程可以有许多模块,这些模块可以在每一门课程上。所以课程1可以包含模块1和模块2,但课程2可能只包含模块2。我希望在modules表中使用JSON来存储时间表信息

我希望能够获得每门课程的模块列表

我想做的是从模块中选择*,其中moduleID在SELECT moduleID在courseName=UserSpecifiedCourse的课程中

我想让它返回modules表中的所有行,它们的ID与用户选择的课程匹配 这会带来什么回报,有没有更好的方法


由于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);

这正是我需要的。非常感谢你。