クマの手も借りたい
茶トラネコ(@kumanotemo)です。上場を控えたITベンチャーを2社も退職してフリーランスの道を選んだ放浪エンジニアです。
MySQL

MySQLでテーブルのカラムを別テーブルのカラムの値でUPDATEする

サイトを運用していると、仕様変更やメンテナンスの影響で、テーブルのデータ移行が発生するケースがあります。

簡単なものであれば SQL で更新したり、ダンプしたデータをシェルで加工してリストアする程度で済みますが、複雑なものになればバッチプログラムを書いたりすることもありますよね。

今回は、SQL で事足りるパターンではあるのですが、同じキーカラムを持った別のテーブルにある特定のカラムの値で UPDATE をしたいという場面に遭遇したので、それを実現したいと思います。

テーブル構成とUPDATE文

仮に、テーブルA(table_a)とテーブルB(table_b)が以下の構成になっているとします。

テーブル カラム1(主キー) カラム2
table_a id title
table_b id title

今回は、テーブルA(table_a)の title カラムに、テーブルB(table_b)の title カラムの値を反映したいという要件を満たす SQL を考えます。

ざっくり書くと以下のようになります。

UPDATE table_a, table_b SET table_a.title = table_b.title WHERE table_a.id = table_b.id;

できるだろうとは思っていましたが、あまり遭遇しないケースなので、いざ SQL を書こうと思うとちょっと考えますね。

複数のテーブルを使った更新処理というのがレアだとは思いますが、できるってことを知っておくだけでもいつか役に立つかもしれません。

現場のプロから学ぶSEO技術

SEO について詳しくないけどこれから学んでみたい方。

これまでの小手先の SEO に対する技術には詳しいけど、マーケティングやソーシャル要素を組み合わせた今時の SEO をもう一度勉強してみたい方にオススメです。

あなたにオススメ