首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >SQL Server :从表中删除从表中删除

SQL Server :从表中删除从表中删除
EN

Stack Overflow用户
提问于 2019-06-05 08:57:04
回答 1查看 5.8K关注 0票数 3

我在SQL Server中不断遇到这种DELETE FROM FROM语法,并且不得不提醒自己它是做什么的。

代码语言:javascript
复制
DELETE FROM tbl
FROM #tbl
  INNER JOIN tbl ON fk = pk AND DATEDIFF(day, #tbl.date, tbl.Date) = 0

编辑:为了使大多数评论和建议答案有意义,原始问题具有以下查询:

代码语言:javascript
复制
DELETE FROM tbl
FROM tbl2
EN

回答 1

Stack Overflow用户

发布于 2019-06-05 09:21:15

据我所知,您将使用这样的结构,即根据from查询的结果限制从第一个表中删除哪些行。但要做到这一点,你需要在这两者之间建立一个相关性。

在您的示例中没有关联,这实际上是一种交叉连接类型,这意味着“对于tbl2中的每一行,删除tbl1中的每一行”。换句话说,它将删除第一个表中的每一行。

下面是一个示例:

代码语言:javascript
复制
declare @t1 table(A int, B int)
insert @t1 values (15, 9)
,(30, 10)
,(60, 11)
,(70, 12)
,(80, 13)
,(90, 15)

declare @t2 table(A int, B int)
insert @t2 values (15, 9)
,(30, 10)
,(60, 11)

delete from @t1 from @t2

结果是一个空的@t1。

另一方面,这将只删除匹配的行:

代码语言:javascript
复制
delete from @t1 from @t2 t2 join @t1 t1 on t1.A=t2.A
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56453021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档