使用条件仅将选定值从一个表复制到另一个表

时间:2014-03-19 17:40:08

标签: java sql sqlite

我正在尝试将选定的值从一个表的行复制到另一个表,问题是SQLite为嵌套的SELECT命令提供了错误

java.sql.SQLException: only a single result allowed for a SELECT that is part of an expression

以下是我的尝试:

INSERT INTO table2(ID, ProjectName ) 
SELECT ID, ProjectName FROM table1
Where table1.ID NOT IN table2

我在这里无法使用*,因为table1有四列而table2只有3列。 所有必须做的就是检查IDtable1中是否存在来自table2的任何ID值,然后仅复制来自ProjectName的相应table1ID, ProjectName , null并将其作为{{1}}

插入到table2中

null用于table2中的thrid列值。

任何建议或帮助都会很棒

1 个答案:

答案 0 :(得分:2)

您的查询几乎就在那里:

INSERT INTO table2(ID, ProjectName ) 
    SELECT ID, ProjectName
    FROM table1
    Where table1.ID NOT IN (select table2.id from table2);

这是标准SQL,因此它应该适用于任何数据库。