那位大神給講解一下語句的執行流程
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)
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)
2017-05-29
舉報
2017-05-31
(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 字句是減小范圍用的。
2018-03-14
哪位大神知道MAX(c.kills)的值是怎么來的嗎?
2017-12-17
第一步 三張表join,?
第二步: group分組
第三步: hiving對分組后的結果進行篩選