Cha*_*obs 1 sql t-sql sql-server
通常我会截断这样的数据:
truncate table DST.BreaksDST
Run Code Online (Sandbox Code Playgroud)
但是,我只需要删除其他表的连接包含'DST'源的数据
我的SELECT陈述如下:
select
dstid, dst.breakid
from
DST.BreaksDST dst
join
base.breaks b on dst.BreakId = b.BreakId
where
b.source = 'DST'
Run Code Online (Sandbox Code Playgroud)
所以我知道如果我使用类似的东西 DELETE .... IN (select dst.breakid .....)
那会很慢,对吧?
什么是更好的方法?
你可以使用DELETE [FROM] ... FROM JOIN:
DELETE dst
FROM DST.BreaksDST dst
JOIN base.breaks b
ON dst.BreakId = b.BreakId
WHERE b.source = 'DST';
Run Code Online (Sandbox Code Playgroud)
请注意,double FROM不是错误:
DELETE FROM dst
FROM BreaksDST dst
JOIN breaks b
ON dst.BreakId = b.BreakId
WHERE b.source = 'DST';
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
60 次 |
| 最近记录: |