![](https://cdn-ak-scissors.b.st-hatena.com/image/square/e381c47f5bcaf18d3670508a2c74626ed1d0662e/height=288;version=1;width=512/https%3A%2F%2Fgihyo.jp%2Fassets%2Fimages%2FICON%2F2009%2F431_sql_academy2.png)
エントリーの編集
![loading...](https://b.st-hatena.com/bdefb8944296a0957e54cebcfefc25c4dcff9f5f/images/v4/public/common/loading@2x.gif)
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
第2回 更新なんてこわくない! (2)行から列への更新 | gihyo.jp
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
![アプリのスクリーンショット](https://b.st-hatena.com/bdefb8944296a0957e54cebcfefc25c4dcff9f5f/images/v4/public/entry/app-screenshot.png)
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
第2回 更新なんてこわくない! (2)行から列への更新 | gihyo.jp
生徒B002とC003の数学の点数は、データソースであるScoreRowsテーブルからはわからないのでNULLのままで... 生徒B002とC003の数学の点数は、データソースであるScoreRowsテーブルからはわからないのでNULLのままです。また、そもそもD004という生徒は存在しないので、この生徒については更新対象外とされます。 基本的には、前問と同様にSET句で相関サブクエリを利用します。同じ生徒同士の情報を更新するわけですから、結合キーはstudent_idです。 1つずつ更新する まず考えつくのは、リスト3のように1教科ずつ更新する「素直な」SQLでしょう。このクエリは非常に明快ですが、3つの相関サブクエリを実行しなければならず、パフォーマンスに問題があります。更新したい教科がもっと増えたらその分だけサブクエリの数も増え、パフォーマンスが悪化するでしょう(それでも、検索条件で主キーのインデックスを使える点が救いですが)。この問題点を改善する方法はないものでしょうか? リスト3 行→列の更新SQL