在sql中删除不同的多列
我在Access中创建了SQL Server中的查询。 访问:在sql中删除不同的多列
DELETE DISTINCT * from [TableA] INNER JOIN TableB
ON [TableA].[Column1]=[TableB].[column1]
AND [TableA].[Column2]=[TableB].[column2]
我知道我可以使用
Delete from tableA where ID in (
Select * from from [TableA] INNER JOIN TableB
ON [TableA].[Column1]=[TableB].[column1]
AND [TableA].[Column2]=[TableB].[column2])
,但我得到一个错误说“只有一个表达式可以在选择列表中指定时不引入子查询用EXISTS”
我的目标是从顶部提到的Access查询中删除不同的记录。
要根据列匹配删除TableA
中位于TableB
的行。如何做到这一点:
delete from tableA
where exists (select 1
from tableB
where tableA.Column1 = tableB.Column1 and tableA.column2 = tableB.column2
);
这似乎是你想要做的意图。
在子查询u必须选择相应的表是唯一的列ID列u需要
DELETE a
FROM tableA a
JOIN (SELECT DISTINCT Column1 ,column2
FROM tableA
WHERE EXISTS (SELECT 1
FROM tableB
WHERE tableA.Column1 = tableB.Column1
AND tableA.column2 = tableB.column2)) b
ON A.Column1 = B.Column1
AND A.column2 = B.column2
Pradeep我需要删除(DELETE DISTINCT *从[TableA])。任何想法如何编辑你提供的查询相应。我没有表中的ID列 – AllPigsREqual 2014-10-21 21:32:37
@Lewan - 现在试试.. – 2014-10-21 22:16:15
我会让你知道,一旦我使用两个查询来验证记录 – AllPigsREqual 2014-10-22 09:58:04
此作品完美,但选择1给出了选择查询的每一行。在那里,因为我需要像删除Access查询一样删除唯一的列。你可以点亮一下。 – AllPigsREqual 2014-10-21 21:30:39
@Lewan你认为'独特'对此有何影响?你只想删除在'TableB'中出现的行吗?或者你只想删除'TableB'中多次出现的行?两者都是可以实现的,但不能使用“distinct”关键字。 – TheConstructor 2014-10-21 22:28:02