老师,问您个问题:
在执行“select * from user_kills;”得到的表中全部数据那一块,当把id为8的那条数据的user_id改为2时,即猪八戒有在两个不同的日期杀敌都有10个的记录,那么通过您那条语句查询出来的结果就不是6条数据(每个徒弟都有两条记录),而是猪八戒只有一条记录,而其余正常,请问这个作何解释呢?
这个也是我偶然发现的,因为网站上没有贴出表中用例数据,所以先期是自己胡乱建的数据,视频到后期才通过你的查询看到完整的数据。
放到代码里面去筛选呗
恩,我的也是同样情况。有没有最佳的方法去解决?
点赞,确实是,偶然发现,那就是问题了,确实是没有考虑完全。(select count(*) from user_kill b where b.user_id = a.user_id and a.kills <= b.kills ) cnt,这个语句是达不到排序目的的,正如你说,猪八戒有12、10、10 这种记录时,针对12,排出结果是1,最对第一个、第二个10,排出的结果都是3,后面条件 where cnt <= 2 直接把两条10的记录过滤掉了。