SQL 一条语句查询出所有记录的信息和每条信息所拥有的对应标签的数量

举个栗子。
两个表
歌曲表 music,两个字段 music_id, name
歌曲标签表 music_tag,两个字段 music_id, tag_id
我想一条SQL语句将 music 表中的 所有的 music_id 和 name 及其所拥有的标签的数量查询出来(假设只有部分歌曲拥有标签),请问怎么写?JOIN 来 JOIN 去都没对,我是用的 MySQL。

阅读 6.5k
2 个回答
select music_id, name,isnull(temp.music_tag,0) from music left join
(select music_id, count(0) as num from music_tag group by music_id) temp
where music.music_id = temp.music_id

大致是这样。。语法如果有错稍微改一下吧~

已测试 ,语句如下:

select music.music_id,music.name,count(music_tag.music_id) as num from music left join music_tag on music.music_id=music_tag.music_id group by music.music_id
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进