5

列を別のテーブルに結合しながら更新しようとしています。以下のクエリを使用しましたが、エラーが発生しました。

UPDATE  TABLE_2 
INNER JOIN
      TABLE_1
ON     (T2.ID=T1.ID)
SET      TABLE_2.DEPT='HUMAN RESOURCE'
WHERE    TABLE_2.DEPT='HR'
AND T1.COMPANY =1 

誰でもこれについて私を助けることができますか?

ありがとう。

4

3 に答える 3

3

T21 つには、どこにも定義されていないテーブル エイリアス (T1など) を使用しているため、問題が解決する可能性があります。そうでない場合、正しい構文は SQL フレーバーに大きく依存します。

たとえば、SQL Server の構文は次のとおりです。

UPDATE T2
SET T2.dept = 'HUMAN RESOURCE'
FROM Table2 T2
   INNER JOIN Table1 T1
        ON T1.[ID] = T2.[ID]

ここで参加する必要さえありませんが、必要なのは

UPDATE Table2 T2
SET T2.dept = 'HUMAN RESOURCE'
WHERE EXISTS(SELECT * FROM  Table1 T1
        ON T1.[ID] = T2.[ID])

MySQL では、構文は次のとおりです。

UPDATE FROM TABLE2 AS T2 
    INNER JOIN TABLE1 as T1 
        ON T2.id = T1.id 
SET T2.Dept = 'Human Resources' 

もちろん、このWHERE EXISTSアプローチはMySQLでも機能します

UPDATE FROM Table2 AS T2
   SET Dept="Human Resources" 
   WHERE EXISTS (SELECT * FROM  Table1 T1
            ON T1.[ID] = T2.[ID]);
于 2012-05-31T04:17:54.613 に答える
0

MSSQLの場合、クエリは次のようになります。

UPDATE TABLE_2 SET DEPT='Human Resource'
FROM TABLE_1
WHERE TABLE_2.ID = TABLE_1.ID
AND TABLE_2.DEPT = 'HR'
AND TABLE_1.COMPANY = 1
于 2012-05-31T04:25:07.213 に答える
0

UPDATE TABLE_2 SET DEPT='Human Resource' FROM TABLE_1,Table2 WHERE TABLE_2.ID = TABLE_1.ID AND TABLE_2.DEPT = 'HR' AND TABLE_1.COMPANY = 1

結合でテーブルを更新すると、両方のテーブルをクローズから使用するため

于 2014-03-19T15:27:18.170 に答える