重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

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

A 回答 (2件)

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



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;
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/01/14 14:56

MySQLのバージョンは?

この回答への補足

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

補足日時:2009/01/12 21:53
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す