我有一个包含多个表的sqlite3数据库。
table1 (Row1, Row2)
table2 (Row1, Row2)
table3 (Row1, Row2)
当且仅当表2中存在特定的行数据时,我想从表2的特定列插入数据。否则不执行操作。
我考虑了以下内容:
INSERT OR IGNORE INTO
table3
VALUES
( x,
( SELECT SUM(Row2)
FROM Table2
WHERE Row1=y
)
因此它会停止冲突。但我需要插入或替换。
只有在另一个表/行中存在某些条件时,是否有某种方法可以插入数据?
答案 0 :(得分:1)
INSERT ... VALUES ...
语句只插入一条记录。
为了能够插入更多或更少的记录,请将VALUES
部分替换为返回适当数量的列的查询:
INSERT INTO table3
SELECT x,
SUM(Row2)
FROM Table2
WHERE Row1 = 'y'
GROUP BY Row1;
(此处,如果Row1中没有GROUP BY
,y
可确保不返回任何记录。)