如何解决SQLite创建多表关联视图时出现空白字段的问题
正确修改后的语句
CREATE VIEW [OVERVIEW] AS SELECT Participants.ID, Participants.Name, Subjects.Subject FROM Participants -- 先关联多对多中间关联表,表名含特殊字符需用方括号包裹 LEFT JOIN [participants List] ON Participants.ID = [participants List].[Participant.ID] -- 再通过中间表关联课程表获取课程名称 LEFT JOIN Subjects ON [participants List].[SUBJECT.ID] = Subjects.ID;
逻辑说明
- 你之前的错误核心是跳过了多对多关系必备的中间关联表,直接将两个无直接关联的主键字段做匹配,才会出现ID大于3的参与者无法匹配到课程的问题。
- 多对多关系的关联逻辑为:参与者表 ↔ 中间关联表 ↔ 课程表,需要两次JOIN操作才能正确拿到对应关系。
- 如果需要将未选课参与者的Subject空值替换为自定义文本,可将SELECT部分的
Subjects.Subject改为IFNULL(Subjects.Subject, '未选课')即可。
内容的提问来源于stack exchange,提问作者mr_newbye
相关产品推荐
相关产品推荐

