- ベストアンサー
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 お手数をおかけしますが、ご教授いただけると助かります。 よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
group by句を間違えていないでしょうか? group by sci.subcategory_item_id,sci.subcategory_item_name でいけませんでしょうか?
その他の回答 (1)
- yuu8969
- ベストアンサー率12% (2/16)
from の後に来るのが enquete_detail テーブルで left join の後に来るのが subcategory_item テーブルじゃないですかね? 書くところを逆転させてみてください。
お礼
回答ありがとうございます。 逆に書いてみましたが、さらに抽出されたデータが絞り込まれてしまい、うまくいきませんでした。。
お礼
まさしくその通りでした! 初歩的なミスをご指摘いただき大変感謝です!