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
Database 使用sqlite查询从多个表向表中插入值_Database_Sqlite_Join - Fatal编程技术网

Database 使用sqlite查询从多个表向表中插入值

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

如果我把表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       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