SQLite3条件插入?

时间:2014-01-02 03:08:00

标签: sql sqlite

我有一个包含多个表的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
      )

因此它会停止冲突。但我需要插入或替换。

只有在另一个表/行中存在某些条件时,是否有某种方法可以插入数据?

1 个答案:

答案 0 :(得分:1)

INSERT ... VALUES ...语句只插入一条记录。

为了能够插入更多或更少的记录,请将VALUES部分替换为返回适当数量的列的查询:

INSERT INTO table3
SELECT x,
       SUM(Row2)
FROM Table2
WHERE Row1 = 'y'
GROUP BY Row1;

(此处,如果Row1中没有GROUP BYy可确保不返回任何记录。)