SQL Server - 从 tbl1 插入到 tbl2,其中 tbl1.column1 <> tbl2.column1



我有两个表,它们有相同的列。正如主题标题所说,我想插入到第二个表的第一个表的记录,其中同一列的值是不同的。

我试过了:

SELECT * FROM Table1 INNER JOIN Table2 ON Table2.column1 <> Table1.column1;

SELECT * FROM Table1, Table2 WHERE Table1.column1 <> Table2.column1;

但是结果是两个表中的复制值,我想是因为我从两个表中进行了选择。

如果我做以下操作:

INSERT INTO Table2 SELECT * FROM Table1 WHERE Table1.column1 <> Table2.column1;

它会给我一个错误:

在più parti "Table2.column1">

除非指定所讨论的行,否则无法比较列值。在你的情况下,这听起来像是"哪一行"这个问题的答案。是"Table2"中的任何一行,因此您可以将存在量词应用于Table2的行,以决定您希望插入Table1的哪些行。长话短说,您告诉SQL插入缺失的行。

对应的SQL如下:

INSERT INTO Table2
SELECT * FROM Table1 t1
WHERE NOT EXISTS (
SELECT * FROM Table2 t2
WHERE t1.column1 = t2.column1
)

最新更新