为了账号安全,请及时绑定邮箱和手机立即绑定

T-SQL:选择要通过联接删除的行

T-SQL:选择要通过联接删除的行

饮歌长啸 2019-10-23 14:17:53
场景:假设我有两个表TableA和TableB。TableB的主键是单列(BId),并且是TableA中的外键列。在我的情况下,我想删除TableA中与TableB中的特定行链接的所有行:是否可以通过联接做到这一点?删除从联接中拉入的所有行?DELETE FROM TableA FROM   TableA a   INNER JOIN TableB b      ON b.BId = a.BId      AND [my filter condition]还是我被迫这样做:DELETE FROM TableAWHERE   BId IN (SELECT BId FROM TableB WHERE [my filter condition])我问的原因是,在我看来,处理较大的表时,第一种选择的效率更高。谢谢!
查看完整描述

3 回答

?
杨__羊羊

TA贡献1943条经验 获得超7个赞

我会使用这种语法


Delete a 

from TableA a

Inner Join TableB b

on  a.BId = b.BId

WHERE [filter condition]


查看完整回答
反对 回复 2019-10-23
?
郎朗坤

TA贡献1921条经验 获得超9个赞

是的你可以。范例:


DELETE TableA 

FROM TableA AS a

INNER JOIN TableB AS b

ON a.BId = b.BId

WHERE [filter condition]


查看完整回答
反对 回复 2019-10-23
  • 3 回答
  • 0 关注
  • 347 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信