01 / 04
注文の表に名前がない
orders を見ても、売れたのが何なのかは分からない。入っているのは item_id という番号だけだからだよ。
「1番」「3番」「2番」と言われても、それが箸置きなのかマグなのかは読み取れないよね。
SELECT id, item_id, quantity FROM orders LIMIT 3;実行結果
1 | 1 | 2 2 | 3 | 4 3 | 2 | 4
テーブルをつなぐ
INPUT · スライド
01 / 04
orders を見ても、売れたのが何なのかは分からない。入っているのは item_id という番号だけだからだよ。
「1番」「3番」「2番」と言われても、それが箸置きなのかマグなのかは読み取れないよね。
SELECT id, item_id, quantity FROM orders LIMIT 3;実行結果
1 | 1 | 2 2 | 3 | 4 3 | 2 | 4
02 / 04
商品の情報は items テーブルに、商品1つが1レコードで入っている。
id … 商品の番号name … 商品名price … 値段category … 種類SELECT * FROM items;実行結果
1 | ひのきの箸置き | 480 | 食卓 2 | あさひ色のマグ | 1600 | 食卓 3 | わたのふきん | 340 | キッチン 4 | こもれびランプ | 3800 | あかり 5 | まめのコースター | 260 | 食卓 6 | つきよの花びん | 2400 | かざり
03 / 04
「注文のたびに商品名と値段も書けばいいのに」と思うよね。でも分けておくと得なことが多いんだ。
こうやって役割ごとに表を分けるのが、データベースのふつうの姿だよ。
SELECT name, price FROM items ORDER BY price DESC LIMIT 3;実行結果
こもれびランプ | 3800 つきよの花びん | 2400 あさひ色のマグ | 1600
04 / 04
items にも今まで覚えた道具がそのまま使える。WHERE で絞れるし、GROUP BY でまとめられるし、AS で別名も付けられるよ。
つなぐ書き方はまだ出てこない。この節では2つの表を片方ずつ読む練習をして、次から鍵をさがしていこう。ここから書いてみよう。
SELECT category, COUNT(*) AS kinds FROM items GROUP BY category ORDER BY category;実行結果
あかり | 1 かざり | 1 キッチン | 1 食卓 | 3