2011-03-15 98 views
0

你好,我需要能夠搜索一個一年的記錄,然後刪除它。我有這個腳本,它允許我從一個表中刪除記錄,基於另一個表給出的日期,但是我需要向此添加代碼,以便能夠從與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

回答

0

一樣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