Database 使用sqlite查询从多个表向表中插入值
如果我把表1作为Database 使用sqlite查询从多个表向表中插入值,database,sqlite,join,Database,Sqlite,Join,如果我把表1作为 A B C 1 b.1 c.1 2 b.2 c.2 1 b.3 c.3 我的第二张桌子如表2所示 A D E F G 1 d.1 e.1 f.1 g.1 2 d.2 e.2 f.2
A B C
1 b.1 c.1
2 b.2 c.2
1 b.3 c.3
我的第二张桌子如表2所示
A D E F G
1 d.1 e.1 f.1 g.1
2 d.2 e.2 f.2 g.2
我需要将上面的值插入一个空表3中,使其看起来像这样
A B C D E
1 b.1 c.1 d.1 e.1
2 b.2 c.2 d.2 e.2
1 b.3 c.3 d.1 e.1
所以基本上我需要将表1的每一行插入表3。对于每一行,我需要检查列A,并从列中找到相应的值D和E,然后插入到表3中。是否可以在一个查询中执行此操作
要将表1复制到表3,我可以使用查询
INSERT INTO Table3(A,B,C) SELECT A,B,C FROM Table1
然后我需要从表3中获取每一行,并使用一个函数更新表2中D和E的值。是否有更好的解决方案可以用于直接从两个表插入表3?非常感谢您的帮助,因为我是数据库和查询的初学者。要合并两个表,请使用联接:
-- INSERT ...
SELECT A, B, C, D, E
FROM Table1
JOIN Table2 USING (A);
如果未找到匹配的表2
行,则不会生成结果行。如果在这种情况下需要一个结果行(缺少的值为null),请使用
这可能会解决您的问题。谢谢您的回复。我想我应该再加一个条件。表2有表3中不需要的其他F、G、H列。加入仍然有效吗?评论不是为了提出新问题;请使用“提问”按钮。但是你可以试试看…
INSERT INTO Table3 (A,B,C,D,E)
SELECT t1.A, t1.B, t1.C, t2.D, t2.E FROM Table1 t1
INNER JOIN Table2 t2 ON t2.A = t1.A