MS SQL删除所有不相等的记录
我的问题是: 我有两个表(例如MS SQL删除所有不相等的记录,sql,sql-server,tsql,sql-server-2014,sql-delete,Sql,Sql Server,Tsql,Sql Server 2014,Sql Delete,我的问题是: 我有两个表(例如T1和T2),它们都有字段Q\u ID。表T1在Q\u ID列dot-machT2中有一些记录。我的目标是用关系连接它们,所以我想删除T2中的所有行,其中Q\u ID不会从T1中删除Q\u ID。我尝试过像这样使用内部连接,但这个脚本只是删除了所有记录 DELETE dst FROM HRM_MVC_DEV_Test.dbo.ProjectWorkers as dst INNER JOIN HRM_MVC_DEV_Test.dbo.Project
T1
和T2
),它们都有字段Q\u ID
。表T1
在Q\u ID
列dot-machT2
中有一些记录。我的目标是用关系连接它们,所以我想删除T2
中的所有行,其中Q\u ID
不会从T1
中删除Q\u ID
。我尝试过像这样使用内部连接,但这个脚本只是删除了所有记录
DELETE dst FROM HRM_MVC_DEV_Test.dbo.ProjectWorkers as dst
INNER JOIN HRM_MVC_DEV_Test.dbo.Project as src on dst.ProjectId<>src.ProjectId
将dst作为dst从HRM_MVC_DEV_Test.dbo.ProjectWorkers中删除
内部连接HRM_MVC_DEV_Test.dbo.Project作为dst.projectDSRC.ProjectId上的src
我正在使用MS SQL server 2014可能是这样的:
CREATE TABLE T1 (ID INT, SomeValue VARCHAR(100));
CREATE TABLE T2 (ID INT, SomeValue VARCHAR(100));
INSERT INTO T1 VALUES
(1,'Row 1'),(2,'Row 2'),(3,'Row 3'),(4,'Row 4');
INSERT INTO T2 VALUES
(1,'Row 1'),(4,'Row 4');
DELETE FROM T1
WHERE T1.ID NOT IN(SELECT T2.ID FROM T2);
SELECT * FROM T1;
SELECT * FROM T2;
也许是这样的:
CREATE TABLE T1 (ID INT, SomeValue VARCHAR(100));
CREATE TABLE T2 (ID INT, SomeValue VARCHAR(100));
INSERT INTO T1 VALUES
(1,'Row 1'),(2,'Row 2'),(3,'Row 3'),(4,'Row 4');
INSERT INTO T2 VALUES
(1,'Row 1'),(4,'Row 4');
DELETE FROM T1
WHERE T1.ID NOT IN(SELECT T2.ID FROM T2);
SELECT * FROM T1;
SELECT * FROM T2;
您也可以通过以下两种方式进行:
DELETE dst
FROM HRM_MVC_DEV_Test.dbo.ProjectWorkers AS dst
LEFT JOIN HRM_MVC_DEV_Test.dbo.Project AS src ON src.ProjectId = dst.ProjectId
WHERE src.ProjectId IS NULL
--第二
您也可以通过以下两种方式进行:
DELETE dst
FROM HRM_MVC_DEV_Test.dbo.ProjectWorkers AS dst
LEFT JOIN HRM_MVC_DEV_Test.dbo.Project AS src ON src.ProjectId = dst.ProjectId
WHERE src.ProjectId IS NULL
--第二
你可以用一个不同于上面的方法。从:
不存在与存在相反。如果子查询未返回任何行,则满足NOT EXISTS中的WHERE子句
你可以用一个不同于上面的方法。从:
不存在与存在相反。如果子查询未返回任何行,则满足NOT EXISTS中的WHERE子句
顺便说一句,有人能解释一下,为什么我的问题中的一些第一个单词消失了(这个问题也在我之前的问题中)-从一开始就消失了“嗨,伙计们”,因为这会给问题增加噪音。问题中不需要正式的介绍、感谢、问候等,只会增加噪音。社区通常会对问题进行编辑,以使其更加清晰或用于格式化等,遇到这些问题时也会考虑并删除。请不要冒犯它,这只是论坛的设计方式和社区成员喜欢如何互动。顺便说一句,有人能解释一下,为什么我问题中的一些第一个词消失了(这个问题也在我之前的问题中)-从一开始就消失了“嗨,伙计们。”文本。因为这会增加问题的噪音。问题中不需要正式的介绍、感谢、问候等,只会增加噪音。社区通常会对问题进行编辑,以使其更加清晰或用于格式化等,遇到这些问题时也会考虑并删除。请不要冒犯它,这只是论坛的设计方式以及社区成员喜欢的互动方式。您可能希望使用not exists,t2中的null将导致意外结果您可能希望使用not exists,t2中的null将导致意外结果