已采纳回答 / qq_为了美好的明天
(user1 ajoin user_kills b on a.id = b.user_idjoin user_kills c on c.user_id = b.user_idgroup by a.user_name , b.timestr , b.killshaving b.kills = MAX(c.kills))相当于虚拟了一个表,然后(select a.user_name , b.timestr , b.kills from )是从这个虚拟表中挑选的。对于上面的虚拟表 先用两个join把三个表关联起...
2017-05-29
最赞回答 / wlwzobc
点赞,确实是,偶然发现,那就是问题了,确实是没有考虑完全。(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的记录过滤掉了。
2017-05-25