2017-04-12 72 views
0

我的目標是將下面的查詢轉換爲使用內部連接。轉換SQL Server刪除語句以使用內部連接

DELETE ##TABLE1  
FROM ##TABLE1 A, ##TABLE2 B  
WHERE A.VND_ACCT_NUM in (select distinct VND_ACCT_NUM from ##TABLE2)  

我想是這樣的,但它看起來不正確:

DELETE ##TABLE1  
FROM ##TABLE1 A 
INNER JOIN ##TABLE2 B  
ON A.VND_ACCT_NUM in (select distinct VND_ACCT_NUM from ##TABLE2) 

我的任務是使用內部聯接語法第一查詢轉換。

+0

我們喜歡代碼塊的原因 - 他們給我們語法突出顯示,並防止意外刪除重要的間距細節。請留下你的問題。 –

+0

當然,謝謝。 –

+0

請小心使用全局臨時表。他們經常會導致併發問題。 –

回答

0

剛上來直接匹配的表:如果您試圖通過這樣的加盟刪除同一行多次

DELETE FROM A  
FROM ##TABLE1 A 
INNER JOIN ##TABLE2 B  
ON A.VND_ACCT_NUM i= B.VND_ACCT_NUM 

SQL Server不介意。而且,... IN(SELECT DISTINCT ...無論如何都是毫無意義的,因爲IN一旦找到合格的行就會返回true。

0

試試這個:

DELETE A  
FROM ##MX_DEALS A 
INNER JOIN ##MX_DAR_ISSUE_DEALS B  
ON A.VND_ACCT_NUM in (select distinct VND_ACCT_NUM from ##MX_DAR_ISSUE_DEALS)