【问题标题】:How to delete two records from two tables?如何从两个表中删除两条记录?
【发布时间】:2011-07-15 19:49:52
【问题描述】:

您好,我需要能够搜索一年前的记录,然后将其删除。我有这个脚本,它允许我根据另一个表给出的日期从一个表中删除记录,但是我需要为此添加代码,以便我能够从与 CardID 相关的另一个表中删除记录。我需要删除的表是 table11,主键是 CardID。

我想我需要一个左连接,但我不确定如何去做。

DECLARE @deleted TABLE (Card INT)

INSERT INTO @deleted
SELECT Card FROM table9
WHERE recordstatus = 4


DELETE table9
FROM @deleted d, table51

WHERE table51.ActionString LIKE '%' + CAST(d.card AS VARCHAR(20))+ '%'
AND table51.AuditDate <= (SELECT CONVERT(VARCHAR(8),today,112) FROM(SELECT DATEADD(YEAR,-1,GETDATE()) AS today)aa)
AND table09.Card = d.card

在此先感谢,希望您能提供帮助。

【问题讨论】:

  • 永远不要再使用那个隐含的语法。这是一种已经过时近 20 年的可怕语法(意外交叉连接、难以维护等),请学习编写显式连接。
  • 我认为投反对票的人很严厉。他的语法很糟糕,但这就是他在这里寻求建议的原因。 +1
  • 非常感谢,我只是在学习,只需要知道如何删除下一张表中的记录,谢谢matthew

标签: sql database sql-server-2005-express


【解决方案1】:

this问题

编辑:正如@HLGEM 所提到的,WHERE 子句在加入之后会转到您期望的位置。

【讨论】:

  • 谢谢,我确实看到了,但是我应该在哪里添加我的 Where 语句以获得我需要的结果
  • @leigh,where 子句的位置与 where 子句的位置相同,如果您有其中之一,则在连接之后和 group by 之前。在链接中,注意交易部分,很重要。
猜你喜欢
  • 2010-12-27
  • 1970-01-01
  • 2022-01-19
  • 1970-01-01
  • 2019-03-28
  • 2011-01-21
  • 1970-01-01
  • 1970-01-01
  • 2016-05-20
相关资源
最近更新 更多