テーブルをつなぐ

INPUT · スライド

テーブルをつなぐ 総合演習

01 / 03

ここまでにできるようになったこと

この章で手に入れた道具をならべてみよう。

  • クエリの中にクエリ … サブクエリ
  • 見出しを分かりやすく … AS
  • 2つの表をつなぐ … JOINON
  • 片方を残してつなぐ … LEFT JOIN
  • いくつでもつなぐ … JOIN を続けて書く

どれも単体では短い。組み合わせて使えるかが本番だよ。

02 / 03

書く順番はいつも同じ

句のならびは決まっているから、迷ったらこの形に当てはめよう。

SELECTFROMJOINONWHERE 条件 GROUP BY まとめ HAVING 条件 ORDER BY 並び LIMIT 件数

いらない部分は書かなくていいけれど、順番は入れかえられないよ。

SELECT items.name AS item,  SUM(orders.quantity) AS total  FROM orders  JOIN items  ON orders.item_id = items.id  WHERE orders.channel = 'アプリ'  GROUP BY items.name  ORDER BY total DESC, item;

実行結果

あさひ色のマグ | 3
ひのきの箸置き | 2
わたのふきん | 2
こもれびランプ | 1

03 / 03

問題は4つに分けて読む

長い問題文でも、聞かれているのはこれだけ。書く前にメモしよう。

  • どの表が必要? 名前や町がほしいなら、その表をつなぐ
  • どうつなぐ? 鍵になる列はどれか
  • どの行にしぼる? まとめる? 並べる?
  • 見出しに別名は必要?

「無いものをさがす」問題だけは LEFT JOINIS NULL を思い出してね。手作り雑貨店の3つの表で力だめしをしよう。