1

適切なレコードを見つけるために INNER JOIN を使用する必要があるテーブルのレコードを更新しようとしています。

   SELECT T2.*
   FROM Schema.Table2 T2 INNER JOIN 
     Schema.Table1 T1 ON T2.Key_Column = T1.Key_Column
   WHERE T2.ID = @ID AND T1.Code = '1'

試した

UPDATE Schema.Table2 T2
SET T2.col1 = @Var1,
    T2.col2 = @Var2,
    T2.col3 = @Var3
WHERE T2.Key_Column = (SELECT T2.*
                       FROM Schema.Table2 T2 INNER JOIN 
                       Schema.Table1 T1 ON T2.Key_Column = T1.Key_Column
                       WHERE T2.ID = @ID AND T1.Code = '1')

助けてください!

4

2 に答える 2

4

副選択は必要ありません:

UPDATE T2
SET T2.col1 = @Var1,
    T2.col2 = @Var2,
    T2.col3 = @Var3
FROM Schema.Table2 T2 INNER JOIN 
     Schema.Table1 T1 ON T2.Key_Column = T1.Key_Column
WHERE T2.ID = @ID AND T1.Code = '1'
于 2012-12-21T17:05:08.670 に答える
3

どうですか

UPDATE Schema.Table2
        SET
            col1 = @Var1,
            col2 = @Var2,
            col3 = @Var3
    FROM
            Schema.Table2 T2
        INNER JOIN 
            Schema.Table1 T1 
                ON T2.Key_Column = T1.Key_Column
    WHERE 
            T2.ID = @ID 
        AND 
            T1.Code = '1'
于 2012-12-21T17:07:51.937 に答える