
まとめてUPDATEしたいのですが。
下記のようなUPDATE文を実行したいのですが、思ったとおりの動作をしません。
UPDATE
table1 AS TB1
INNER JOIN table2 AS TB2 ON TB1.table2_id=TB2.id
SET
TB2.point = TB2.point - TB1.remainder_point,
TB1.remainder_point = 0
WHERE
TB1.remainder_point > 0
最初の1レコード目だけ「TB2.point = TB2.point - TB1.remainder_point」が実行されますが、
その後のレコードが「TB1.remainder_point = 0」で値が全て0になるらしく、減算処理が行われません。
上手くまとめて実行できる良い書き方は無いでしょうか。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
すなおに
SET TB2.point = TB2.point - TB1.remainder_point
の処理をしたあとに
SET TB1.remainder_point = 0
のSQLを再度発行すればいいでしょう。
そんな手間を惜しむほどのものでもないし。
No.1
- 回答日時:
問題ないような?
下記のような構成で、そのUPDATE文を実行してみたところ、すべて更新されました。
create table table1
(id int auto_increment primary key,table2_id int,remainder_point int);
create table table2
(id int auto_increment primary key,point int);
insert into table2 values
(11,200)
,(null,200)
,(null,200)
,(null,200)
;
insert into table1 values
(null,11,15)
,(null,12,20)
,(null,13,30)
,(null,14,0)
;
この回答への補足
記入頂いたテーブルとデータを実行し、私の書いたSQLを実行したところ、table2のポイントが全て200のままです。。
table1はpointが0になるのですが。
MySQL5.0.51を使ってます。
バージョンの違いでしょうか・・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
mysqlがインストールされている...
-
#1062 - '0' は索引 'PRIMARY' ...
-
SQLでカラムを追加し、条件に合...
-
SQLで漢字名称を都道府県や市区...
-
私の考えていることは ・mySQL ...
-
sqlにおけるテーブル名と各カラ...
-
htmlコードで書かれた表にphpで...
-
エラー 1068 (42000): 複数の主...
-
同一日に複数レコードがある場...
-
MAMP 99ドル約1.6万円 高い...
-
あってますか?SQL
-
WHERE `年月日` = '晴' OR `年...
-
SQLです教えてくださいお願いし...
-
SQLを作ったのですがうまくいき...
-
(初心者)MySQLやmaraDBで、crea...
-
SQLです教えてくださいお願いし...
-
SQLです教えてくださいお願いし...
-
SQLです教えてください。
-
SQLです教えてくださいお願いし...
-
SQLです教えてくださいお願いし...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
まとめてUPDATEしたいのですが。
-
1つのカラムから一致している単...
-
MySQLで縦の計算について
-
SQL任意に並び替えをしたい
-
異なるデータベース間のリレー...
-
VIEWに対してWHERE句をつける
-
Null値が入れられない
-
空白文字を含む文字列データの検索
-
NULLを含む列の足し算
-
nullと同じく空白をCountしない...
-
mysqlのselectについて
-
MySQLの特定のカラムの内容を全...
-
count()の結果を別の計算で使う...
-
Mysqlで「"A"以外を選択」でき...
-
複数テーブルの集計
-
SQLでLIMIT句を入れるとエラー...
-
テーブル作成時に、「`id` int(...
-
SQL文でエラーが出ます。
-
コマンドプロンプト 複数の実...
-
MySQLで同じデータにフラグ付け...
おすすめ情報