Sql 我想从两列表中删除不匹配的记录?

Sql 我想从两列表中删除不匹配的记录?,sql,Sql,我想通过比较表的两列来删除不匹配的记录 请试试这个 DELETE FROM @tbl WHERE Column1 != Column2 OR DELETE A FROM @tbl1 A LEFT JOIN @tbl2 B ON A.Id = B.Id WHERE B.Id IS NULL 如果要比较两个表: DELETE FROM Table1 WHERE (COLUMN) NOT IN (SELECT Table2.COLUMN FROM Table2,TABLE1 wher

我想通过比较表的两列来删除不匹配的记录

请试试这个

DELETE FROM @tbl WHERE Column1 != Column2

    OR

DELETE A FROM @tbl1 A
LEFT JOIN @tbl2 B
ON A.Id = B.Id 
WHERE B.Id IS NULL

如果要比较两个表:

DELETE FROM Table1
WHERE (COLUMN)
NOT IN
(SELECT Table2.COLUMN  FROM Table2,TABLE1 where Table2.COLUMN=TABLE1.COLUMN)
其他:


您还可以使用Left Join删除不匹配的记录

DELETE t1 FROM @TABLE1 t1 
LEFT JOIN @TABLE2 t2 on t1.NAME1 = t2.NAME2
WHERE t2.ID IS NULL

欢迎使用SO,请查看此链接以了解如何询问sql问题:您不能从列中删除记录-您可以将列的值设置为null或删除完整的行。请单击下面的链接来回答您的问题,并根据该数据添加一些和预期的输出。请您的问题-请勿在评论中发布代码或其他信息您使用的是哪种产品?SQL只是一种查询语言,而不是特定数据库产品的名称。请为使用postgresql、oracle、sql server、db2…的数据库产品添加特定于产品的答案,以回答未指定dbms的问题。至少告诉我们这是针对哪个dbms的。这是针对SQL相关dbms的。SQL是ANSI/ISO指定的语言。许多产品都有自己的steandard版本/扩展。您的DELETE不符合ANSI SQL,因此如果您通知OP它是为哪个dbms编写的,那就太好了。对于没有指定dbms的问题,产品特定的答案。至少告诉我们这是针对哪个数据库管理系统的。SQL查询将适用于任何数据库。提供的演示是针对SQL Server的。今天的提示:切换到现代的显式连接语法!更易于编写而无错误,更易于读取和维护,并且在需要时更易于转换为外部联接。
DELETE t1 FROM @TABLE1 t1 
LEFT JOIN @TABLE2 t2 on t1.NAME1 = t2.NAME2
WHERE t2.ID IS NULL