亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

where b.user_id = c.user_id

select a.user_name,b.timestr,b.kills from user1 as a left join user_kills as b on a.id = b.user_id

where b.kills = (select max(c.kills) from user_kills as c where b.user_id = c.user_id);


為什么 b,c 表 user_id 一樣的,加了和不加結果會不一樣

正在回答

2 回答

加了where b.user_id = c.user_id這個條件,max(c.kills)是可變的(會求出3個userid的各個的最大值,然后去外面卡where條件),不加,這個值是固定的(是這些userid里最大的一個值,無意義)。

1 回復 有任何疑惑可以回復我~
#1

破裂人偶 提問者

非常感謝!
2018-07-18 回復 有任何疑惑可以回復我~

where b.kills = (select max(c.kills) from user_kills as c where b.user_id = c.user_id);括號外的where b.kills 依次取數,但是只要滿足括號內where b.user_id = c.user_id,即把同類ID最大的kills返回,相當于有一個分組條件;若不加上的話,只返回kills中最大的值,這個值是唯一的

2 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

where b.user_id = c.user_id

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號