2

次のクエリがあります。

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

上記のクエリからすべてを削除したい(内部結合とWhere句に基づいて出力が一致するテーブル2のすべて)。次のことを試しましたが、機能しませんでした。

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

助けてください!

編集:

君たちありがとう。TIL FROMは、サブクエリ形式で使用せずに2回使用できます。:)

4

2 に答える 2

9
DELETE  FROM T2
FROM    Schema.Table2 T2 
JOIN    Schema.Table1 T1 
ON      T1.ColumnName = T2.ColumnName 
WHERE   T1.SomeOtherColumn = 123456
于 2012-12-19T15:30:37.050 に答える
3

クエリを作り直して、次のようにサブクエリを使用して単一のテーブルから選択することもできます。

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

(これは、サブクエリが単一の値を返す場合にのみ機能することに注意してください。そうでない場合は、エラーがスローされます)

于 2012-12-19T15:35:13.567 に答える