2つのテーブルをJOINしてUPDATE(更新)しようとしたら「更新可能なクエリであることが必要です」のクエリエラーが発生しました。
クエリは以下の通りで全く問題無いです。何が問題なのか調べてみたら分かりました。
UPDATE TableA
INNER JOIN TableB ON TableA.id = TableB.id
SET TableA.name = TableB.name;
下記にある2つのテーブル(TableAとTableB)をid列でJOINして、TableAのname列をTableBのname列にある値で置き換えたい。
※TableBはExcelファイルのリンクテーブルを元に作成したSELECTクエリです。
TableAのデータは以下の通りです。
TableBのデータは以下の通りです。
クエリデザインで作成したリンクテーブルのSELECTクエリをJOINすることができないみたいです。
SELECTクエリがダメということなので、わざわざテーブルを用意してそこにデータを流し込みます。 その新規作成したテーブルをJOINさせたらエラー無くUPDATEができました。不便。
クエリは以下の通りです。この手順でUPDATEは出来ましたが、テーブル同士のJOINじゃないとUPDATEしてくれないので1つステップが余計に必要になります。
1.SELECT * INTO TableC FROM TableB(TableBのSELECTクエリの結果をTableCに入れます)
2.UPDATE TableA INNER JOIN TableB ON TableA.id = TableB.id SET TableA.name = TableB.name;(再度UPDATE文を実行)
📂外資系企業へ転職・働き方:外資系企業の転職,英語,面接,働き方
📂国内旅行150ヵ所を紹介:北海道,屋久島
📂海外出張10カ国,50ヵ所以上観光:スペイン,インド,台湾.飛行機対策
📂健康:胃痛,風邪予防,食,メンタル
📂子育て:英語,育て方,旅行
📂PC関連:エンジニアの苦悩,効率化,Windowsのトラブル対応
📂海外ドラマ:海外ドラマ・映画のレビューと感想
📂車関連:海外のレンタカー,試乗レポート,軽自動車,等々
📂物件:新築一戸建て 申し込みから購入・引渡しまで色々あったこと