inner join 内部結合を使い複数のテーブルを結合してデータを抽出する方法について解説します。
データはこちらの記事で作成したものを使います。
複数テーブルからデータを抽出する inner join 内部結合
今回はmenu_masterテーブル、purchaseテーブルをinner joinで内部結合します。
purchaseテーブルの購入履歴を抽出したいのですが、purchaseテーブルには「アメリカンコーヒー」などのメニュー名が入っておらずmenuのIDのみ入っています。
そこで、menu_masterテーブルと結合してnameを一緒に取得します。
SELECT
name
,date
,quantity
FROM
`coffee_shop.menu_master` A inner join `coffee_shop.purchase` B on A.ID = B.menu;
ちなみに、数字を合算して抽出する方法について
「どのメニューが何日に合計でいくつ売れたか」抽出したい場合は下記のようにします。
SELECT
name
,date
,SUM(quantity) AS quantity
FROM
`coffee_shop.menu_master` A inner join `coffee_shop.purchase` B on A.ID = B.menu
GROUP BY
name,date;