- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:複数テーブルの結合)
マスターテーブルの複数テーブル結合方法
このQ&Aのポイント
- マスターテーブルと子テーブルを結合するためのSQLを作成する方法をご説明します。
- マスターテーブルのIDと子テーブルのIDを比較し、一致する場合にカウントする方法について解説します。
- Aテーブルにデータが存在しなくても、Bテーブル以降のテーブルにデータが存在すれば正しい結果を得られるコードを作成する方法を説明します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
仕様がよくわかりませんね。 a,b,cにはそれぞれmのidが振られるとして、aのテーブルにmのidはダブりがあるのか? aとbの両方に同じm.idがある場合、aだけ数えればいいのか、aとbの両方いるのか? ざっくりこんな感じ? select m.id,sum(count) as count from master as m left join ( select id,count(id) as count from a group by id union all select id,count(id) as count from b group by id union all select id,count(id) as count from c group by id ) as sub on m.id=sub.id group by m.id
その他の回答 (1)
- bin-chan
- ベストアンサー率33% (1403/4213)
回答No.1
inner joinではダメでしょ。 試験してませんが、left joinに変更してみてください。 select count(m.id) from master m left join a on m.id = a.m_id left join b on m.id = b.m_id left join c on m.id = c.m_id group by m.id