2012-12-19 42 views
2

我有以下查詢。從SQL表中刪除內部加入

SELECT T2.* FROM Schema.Table1 T1 INNER JOIN 
Schema.Table2 T2 ON T1.ColumnName = T2.ColumnName 
WHERE T1.SomeOtherColumn = 123456 

我想從上面的查詢(一切從表2已經通過內匹配輸出的加入和WHERE子句。 我嘗試以下,但無法正常工作。

DELETE Schema.T2.* FROM Schema.Table2 T2 INNER JOIN 
Schema.Table1 T1 ON T1.ColumnName = T2.ColumnName 
WHERE T1.SomeOtherColumn = 123456 

請幫忙刪除一切!

編輯:。

謝謝你們TIL FROM可以使用兩次,而不在子查詢格式使用它:)

回答

9
DELETE FROM T2 
FROM Schema.Table2 T2 
JOIN Schema.Table1 T1 
ON  T1.ColumnName = T2.ColumnName 
WHERE T1.SomeOtherColumn = 123456 
3

你也可以返工查詢從子查詢一個表來選擇,像

DELETE 
FROM Table2 
WHERE Table2.ColumnName = (SELECT Table1.ColumnName 
          FROM Table1 
          WHERE Table1.SomeOtherColumn = 123456) 

(注意,如果子查詢返回一個值,這隻會工作,否則會拋出錯誤)