SQL 统计表 b 对应表a个数,并赋值给表a的一个字段

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_28766327/article/details/79061726

最近遇到这么个问题

  • 表a : 歌单表 music_list
  • 表b : 歌曲详情表 music_detail

一个歌单对应多个歌曲详情,但在表的设计时,没有考虑到在 music_list 设置一个字段标记对应的 music_detail数据条数。在数据已经入库了之后,同事修改了功能需求。通过测试发现,如果每次使用的时候才在sql中统计歌单music_list 对应的歌曲详情music_detail 查询时间居然高达11秒。这显然是我们绝对不能接受的。

由于我们的数据量很大,第一次入库花了大约6个小时。修改入库代码显然也很麻烦。那么我就想能不能直接写一个SQL语句直接统计出结果呢。

实测以下SQL可行

UPDATE music_list l SET l.music_count = (SELECT COUNT(*) FROM music_detail m WHERE l.id = m.music_list_id); 

猜你喜欢

转载自blog.csdn.net/qq_28766327/article/details/79061726