薛cf
2017-05-29 00:34
select a.user_name , b.timestr , b.kills
from user1 a
join user_kills b on a.id = b.user_id
join user_kills c on c.user_id = b.user_id
group by a.user_name , b.timestr , b.kills
having b.kills = MAX(c.kills)
(user1 a
join user_kills b on a.id = b.user_id
join user_kills c on c.user_id = b.user_id
group by a.user_name , b.timestr , b.kills
having b.kills = MAX(c.kills))相当于虚拟了一个表,
然后(select a.user_name , b.timestr , b.kills from )是从这个虚拟表中挑选的。
对于上面的虚拟表 先用两个join把三个表关联起来,group是对这个虚拟表的数据的排序,having 字句是减小范围用的。
哪位大神知道MAX(c.kills)的值是怎么来的吗?
第一步 三张表join,
第二步: group分组
第三步: hiving对分组后的结果进行筛选
MySQL开发技巧(一)
148779 学习 · 123 问题
相似问题