You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何仅用SQL填充SQLite关联表?已知学生ID及所选课程名称

用SQL填充学生选课关联表的方法

已知student_id=1的学生所选课程名称(如数学、英语),可以通过INSERT...SELECT语句直接从classes表匹配课程ID,批量插入到关联表中,具体操作如下:

基础插入语句

如果确定这些课程在classes表中存在,且关联表中没有重复记录,可使用以下语句:

INSERT INTO 关联表 (student_id, class_id)
SELECT 1, class_id
FROM classes
WHERE class_name IN ('数学', '英语');

这个语句的逻辑是:从classes表中筛选出名称为「数学」「英语」的课程ID,将其与固定的student_id=1组合,批量插入到关联表的对应字段中。

避免重复插入的优化

如果关联表设置了student_id和class_id的联合唯一约束(防止同一学生重复选同一门课),可以加上冲突处理逻辑,避免插入重复数据:

INSERT INTO 关联表 (student_id, class_id)
SELECT 1, class_id
FROM classes
WHERE class_name IN ('数学', '英语')
ON CONFLICT (student_id, class_id) DO NOTHING;

这样当该学生已经选过某门课时,SQL会自动跳过这条重复记录,不会报错。

内容的提问来源于stack exchange,提问作者Bisasam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 00:15:55