• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:MySQLのUPDATE文でサブクエリ)

MySQLのUPDATE文でサブクエリの使い方について

このQ&Aのポイント
  • MySQLのUPDATE文でサブクエリの使い方について教えてください。
  • MySQLのUPDATE文でサブクエリを使うとエラーが発生してしまいます。
  • サブクエリ内のFrom句はテンポラリテーブルとして扱うことが可能ですが、正しく使う方法がわかりません。

質問者が選んだベストアンサー

  • ベストアンサー
  • 23468
  • ベストアンサー率66% (6/9)
回答No.2

掲載されてるサイトの解説をちゃんと読めば、できると思いますけど… UPDATE sample SET flag=2 where date = ( SELECT max_date FROM ( SELECT MAX( date ) AS max_date FROM sample WHERE name='suzuki' ) AS temp1 );

hpmt28
質問者

お礼

ご回答ありがとうございます。 うまく動きました。 例示したサイトを参考に自分でも作ってみましたが、うまくSQL文を作れていませんでした。 うまく動かず先に進めなかったので、とても助かりました。

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

>1.社員(列名:nameのsuzuki)の最新出勤日(列名:date)のflagを1にする >2.社員(列名:nameのsuzuki)の最新出勤日以外(列名:date)のflagを2にする updateの中に同じテーブルを含んじゃいけないんだから分けるしかないでしょう SELECT @max:=max(date) FROM sample; UPDATE sample SET flag=(date=@max,1,2);

hpmt28
質問者

お礼

ご回答ありがとうございます。 UPDATEの中に同じテーブルを含むとダメだと私も思っていましたが、ネットで調べて例示したサイトに辿り着きました。 「23468」さんが回答して下さいましたが、 UPDATE sample SET flag=2 where date = ( SELECT max_date FROM ( SELECT MAX( date ) AS max_date FROM sample WHERE name='suzuki' ) AS temp1 ); というSQL文でうまく動きました。 SQL文は奥が深いですね。 今後とも、ご回答宜しくお願いします。

関連するQ&A

専門家に質問してみよう