[英]SQL Server - Insert into tbl2 from tbl1 where tbl1.column1 <> tbl2.column1
我有 2 个表,它们具有相同的列。 就像主题标题所说的那样,我想将第一个表的记录插入到第二个表中,其中同一列的值不同。
我试过:
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
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.