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

最近遇到这么个问题

  • 表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); 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值