こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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回登場していることがわかるように出力したいのですが、
どうしたらいいでしょうか。

投稿日時 - 2009-01-12 17:54:18

QNo.4624740

困ってます

質問者が選んだベストアンサー

こんな感じでどうですか?

SELECT table1.name,COUNT(table2.item_id) as count
FROM table1
left join table2 on
table1.item_id = table2.item_id
GROUP BY table1.name;

投稿日時 - 2009-01-12 23:58:25

お礼

ありがとうございます!できました。
LEFT JOINを用いればよかったんですね、勉強になりました。

投稿日時 - 2009-01-14 14:56:57

ANo.2

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

MySQLのバージョンは?

投稿日時 - 2009-01-12 21:01:45

補足

すいません、バージョンを記載しておくべきでした。
今調べてみたところ、5.0.45でした。
よろしくお願いします。

投稿日時 - 2009-01-12 21:53:49

あなたにオススメの質問