SQLite多表匹配填充字段:基于关联参考码更新输出表
SQLite 多表关联写入/更新解决方案
场景1:向table3插入匹配到的产品码(新增行)
如果需要把table1和table2匹配到的产品码作为新行插入table3,用INSERT INTO ... SELECT语法:
-- 基础写法,插入所有匹配结果 INSERT INTO table3 (Col1) SELECT table2.Col2 FROM table1 JOIN table2 ON table1.Col1 = table2.Col1;
如果担心重复插入相同产品码,加上DISTINCT去重:
INSERT INTO table3 (Col1) SELECT DISTINCT table2.Col2 FROM table1 JOIN table2 ON table1.Col1 = table2.Col1;
场景2:更新table3已有行的空Col1
注意:table3必须有能关联到table1/table2的字段(比如存储参考码的列,假设叫RefCode),否则无法精准匹配行。用SQLite多表UPDATE语法:
-- 匹配参考码,填充对应产品码 UPDATE table3 SET Col1 = table2.Col2 FROM table1 JOIN table2 ON table1.Col1 = table2.Col1 WHERE table3.RefCode = table1.Col1;
如果只想更新Col1为空的行,追加条件:
UPDATE table3 SET Col1 = table2.Col2 FROM table1 JOIN table2 ON table1.Col1 = table2.Col1 WHERE table3.RefCode = table1.Col1 AND table3.Col1 IS NULL;
关键说明
- 替换代码中的表名、列名(比如
table1/table2/table3如果有真实名称,对应修改) JOIN的作用是通过相同的参考码关联table1和table2,确保取到正确的产品码- 确保table3的Col1数据类型和table2的Col2一致,避免写入失败
内容的提问来源于stack exchange,提问作者HeloTippers
相关产品推荐
相关产品推荐

