• ベストアンサー

LEFT JOIN と GROUP BY

こんにちは。 以下の2つのテーブルを結合して、 subcategory_item_idごとのアンケート数を取得したいと思っております。 サブカテゴリー項目テーブル subcategory_item_id category_id subcategory_id subcategory_item_name content image_url アンケート詳細テーブル enquete_detail_id enquete_id store_id category_id subcategory_id subcategory_item_id 試しに作成した以下のSQL文でMySQLで実行したところ、アンケート詳細テーブルにsubcategory_item_idが含まれていない場合も件数0のレコードとして取得したいのですが、うまく取得できませんでした。 select sci.subcategory_item_id, sci.subcategory_item_name, count(ed.enquete_detail_id) c from subcategory_item sci left join enquete_detail ed on (ed.subcategory_item_id = sci.subcategory_item_id) group by ed.subcategory_item_id お手数をおかけしますが、ご教授いただけると助かります。 よろしくお願いいたします。

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

  • ベストアンサー
回答No.2

group by句を間違えていないでしょうか? group by sci.subcategory_item_id,sci.subcategory_item_name でいけませんでしょうか?

haremscarem
質問者

お礼

まさしくその通りでした! 初歩的なミスをご指摘いただき大変感謝です!

その他の回答 (1)

  • yuu8969
  • ベストアンサー率12% (2/16)
回答No.1

from の後に来るのが enquete_detail テーブルで left join の後に来るのが subcategory_item テーブルじゃないですかね? 書くところを逆転させてみてください。

haremscarem
質問者

お礼

回答ありがとうございます。 逆に書いてみましたが、さらに抽出されたデータが絞り込まれてしまい、うまくいきませんでした。。

関連するQ&A