以下のSQL文を使用することで、全ての商品の登場回数を表示することができます。SELECT table1.name, COUNT(table2.item_id) FROM table1 LEFT JOIN table2 ON table1.item_id = table2.item_id GROUP BY table1.name;
COUNTについて
今2つのテーブル(table1には商品IDと商品名、table2にはレシートIDと商品ID)を用い、
table1にある商品がtable2に何回登場しているかCOUNTを用いて数えたいのですが、
1回も登場しない商品が結果に表示されなくて困っています。
以下の様なテーブルを用いています。
[table1]
項目:item_id(主キー)|name
0|"item0"
1|"item1"
2|"item2"
[table2]
項目:detail_id(主キー)|item_id(外部キー)
0|0
1|0
2|1
このとき、
SELECT table1.name,COUNT(*)
FROM table1,table2
WHERE table1.item_id = table2.item_id
GROUP BY table1.name;
のようなSQL文だと、結果にitem2が含まれず、
item0とitem1の登場回数だけ表示されてしまいます。
これをitem2は0回登場していることがわかるように出力したいのですが、
どうしたらいいでしょうか。
お礼
ありがとうございます!できました。 LEFT JOINを用いればよかったんですね、勉強になりました。