如何从两个表中删除两条记录?

问题描述:

你好,我需要能够搜索一个一年的记录,然后删除它。我有这个脚本,它允许我从一个表中删除记录,基于另一个表给出的日期,但是我需要向此添加代码,以便能够从与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 

在此先感谢,希望你能帮助。

+0

请勿再次使用该隐含语法。这是一种可怕的语法(偶然交叉连接,难以维护等),已经过去了近20年,学会了写明确的连接。 – HLGEM 2011-03-15 14:21:34

+0

我认为谁低估是苛刻的。他的语法很糟糕,但这就是他在这里寻求建议的原因。 +1 – Matthew 2011-03-15 14:57:06

+0

非常感谢你,我只是想学习,只需要知道如何删除下表中的记录,谢谢matthew – Leigh 2011-03-15 15:11:14

一样this问题

编辑:作为@HLGEM提到的,WHERE条款去的地方,你希望它去的,之后加入。

+0

谢谢,我确实看到了,但是我会在哪里添加Where Where statments得到我需要的结果 – Leigh 2011-03-15 14:18:40

+0

@leigh,where子句与where子句总是在同一位置,在连接之后和在组​​之前,如果你有其中一个的话。在链接中,要注意交易部分,这很重要。 – HLGEM 2011-03-15 14:23:56