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 一樣的,加了和不加結(jié)果會(huì)不一樣
2018-07-18
加了where b.user_id = c.user_id這個(gè)條件,max(c.kills)是可變的(會(huì)求出3個(gè)userid的各個(gè)的最大值,然后去外面卡where條件),不加,這個(gè)值是固定的(是這些userid里最大的一個(gè)值,無意義)。
2018-12-02
where b.kills = (select max(c.kills) from user_kills as c where b.user_id = c.user_id);括號(hào)外的where b.kills 依次取數(shù),但是只要滿足括號(hào)內(nèi)where b.user_id = c.user_id,即把同類ID最大的kills返回,相當(dāng)于有一個(gè)分組條件;若不加上的話,只返回kills中最大的值,這個(gè)值是唯一的