Accessで複数テーブルを条件にして更新するSQLの書き方
Accessでクエリを作成していたらハマってしまった・・・。
複数テーブルを条件に更新しようとしたらエラーになりました。
AccessのSQLビューから更新クエリを作成していましたが、
構文エラー:演算子がありません。
下記SQLはPostgresSQLだと上手くいくのに、Accessは受け付けてくれません。
なんでだよー!(T_T)
Access 2013だと失敗な例
UPDATE hoge
SET
Name = piyo.Name
FROM
hoge
INNER JOIN fuga
ON hoge.No = fuga.No
INNER JOIN piyo
ON fuga.No = piyo.No
WHERE
fuga.Flg = 1;
どうやら()を付けないといけないみたいですが、
付ける場所を間違えると失敗するのでややこしい。。。
成功例は
UPDATE (
hoge
INNER JOIN fuga
ON hoge.No = fuga.No
)
INNER JOIN piyo
ON fuga.No = piyo.No
SET
hoge.Name = piyo.Name
WHERE
fuga.Flg = 1;
これでようやくNameの更新ができましたとさ。
ちなみに、Access成功例はPostgresSQLでやってみると失敗しました。
・・・わかるかーーーっ!!