我有一个临时表,通过它我要删除Customers表中的所有匹配记录。在"语言术语":
delete
tableA.*
from
table A,table B
where
TableA.col1=TableB.col1
&& TableA.colb=TableB.col2 /// and so forth
有关表格的一些信息:
我在Linq2SQL中使用它,但由于所有查询都需要更长的时间,因为每个查询都有大约80%的匹配记录,我觉得单个查询就足够了。
这在SQL中完全可以吗?
答案 0 :(得分:3)
您可以使用JOIN与DELETE
DELETE a
FROM tableA a
INNER JOIN tableB b
ON a.Col1 = b.Col1
AND a.ColB = b.ColB
... and so on
或使用EXISTS
:
DELETE a
FROM tableA a
WHERE EXISTS
(
SELECT 1 FROM tableB b
WHERE a.Col1 = b.Col1
AND a.ColB = b.ColB
....
)
答案 1 :(得分:0)
merge table1 t1
using (
select t2.ID
from table2 t2
) as d
on t1.ID = d.ID
when matched then delete;