簡體   English   中英

使用sqlite查詢將值從多個表插入表中

[英]Insert values into a table from multiple tables using sqlite query

如果我有Table1作為

A           B         C
1           b.1       c.1
2           b.2       c.2
1           b.3       c.3

我的第二張表Table2為

A          D         E        F         G
1          d.1       e.1      f.1       g.1
2          d.2       e.2      f.2       g.2

我需要將上面的值插入空的Table3中,使其看起來像這樣。

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

因此,基本上我需要將Table1的每一行插入到Table3中。 對於每一行,我需要檢查A列,並從該列中找到相應的值D和E並插入Table3中。 是否可以在單個查詢中執行此操作?

要將Table1復制到Table3,我可以使用查詢

INSERT INTO Table3(A,B,C) SELECT A,B,C FROM Table1

然后,我需要從表3中獲取每一行,並使用A更新表2中的D和E的值。 是否可以使用更好的解決方案直接將兩個表都插入到Table3中? 感謝您的幫助,因為我是數據庫和查詢的初學者。

要合並兩個表,請使用聯接:

-- INSERT ...
SELECT A, B, C, D, E
FROM Table1
JOIN Table2 USING (A);

如果找不到匹配的Table2行,則不會生成結果行。 如果在這種情況下需要結果行(缺失值為NULL),請改用外部聯接

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

這可能會解決您的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM