前提として、
歌手(singer )テーブルにはid カラムとnameカラム、
曲(music)テーブルではidカラムとnameカラム、singer_idカラム(singerのidと内部結合)があり、
好き(favorite)テーブルにはidカラムとmusic_id(musicのidと外部結合)、member_id(memberのid と結合されていますが、今回は使いませんので省略、このカラムはその曲が好きな人のidです。)
と言った3つのテーブルがあるとします。
今回悩んでいるのは曲名と、その曲が好きな人の合計を抽出したいです。
そこで自分は、
sql
1SELECT 2 singer.name, 3 COALESCE(COUNT(favorite.music_id) ,0) 4FROM 5 music 6LEFT OUTER JOIN 7 favorite ON favorite.music_id = music.id 8GROUP BY 9 music.id 10;
そこで質問です。
GROUP BYはmusic.id にすべきか、music.nameにすべきか、どちらが良いのでしょうか??
ダメな理由もお聞かせくださると幸いです。
あなたの回答
tips
プレビュー