gpt4 book ai didi

sqlite - 如何插入但从多个表中获取数据

转载 作者:行者123 更新时间:2023-12-03 14:51:48 25 4
gpt4 key购买 nike

我有一个简单的SQL插入查询,但是其中两个数据全部来自其他两个表,

我知道如何从插入的一个表中获取数据,但是如何从两个表中获取数据?

示例(一个表数据)

INSERT INTO TABLE (COL1, COL2, COL3)
SELECT :COL1, :COL2, TABLE2.ID
FROM TABLE2
WHERE TABLE2.NAME = :LEVEL0


上面的工作正常,并将相关数据从table2中拉出,问题是我需要添加第三个表。

INSERT INTO TABLE (COL1, COL2, COL3, COL4)
SELECT :COL1,
:COL2,
(TABLE2.ID FROM TABLE2 WHERE TABLE2.NAME = :LEVEL0),
(TABLE3.ID FROM TABLE3 WHERE TABLE3.NAME = :LEVEL1)


不起作用,我得到SQL错误

最佳答案

子查询是查询,因此它们需要自己的SELECT:

INSERT INTO TABLE (COL1, COL2, COL3, COL4)
SELECT :COL1,
:COL2,
(SELECT ID FROM TABLE2 WHERE NAME = :LEVEL0),
(SELECT ID FROM TABLE3 WHERE NAME = :LEVEL1);


而且,当所有值都由子查询计算时,您无需使用INSERT的SELECT形式:

INSERT INTO TABLE (COL1, COL2, COL3, COL4)
VALUES(:COL1,
:COL2,
(SELECT ID FROM TABLE2 WHERE NAME = :LEVEL0),
(SELECT ID FROM TABLE3 WHERE NAME = :LEVEL1));

关于sqlite - 如何插入但从多个表中获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33989004/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com