2017-01-04 22 views
0

我有一個足夠簡單的查詢,將用作SP的一部分來不時清理數據庫。表A和表B與ID相關。我使用TableA中的所有ID構建一個表變量,然後刪除TableB中出現的所有ID。這個sintax工作得很好:加入同等查詢

DELETE @TableIds 
FROM @TableIds AS tids 
WHERE tids.sharedID IN (SELECT tb.sharedID FROM TableB AS tb WITH (nolock)) 

這個查詢如何用JOIN而不是IN(子查詢)完成?

回答

0

你不需要一個表變量來做到這一點。使用deletejoin,以便匹配的id記錄可以被刪除。

delete a 
from tablea a 
join tableb b on a.id=b.id 
0

嘗試像下面

DELETE Tids 
    FROM @TableIds AS tids 
    INNER JOIN TABLEb TB(Nolock) ON TIDS.SHAREID=  TB.SHAREId