select a.user_name,b.timestr,max(b.kills) kills from user1 a join user_kills b on a.id=b.user_id group by a.
id; 不知道這樣行不行
id; 不知道這樣行不行
2016-12-22
之前join關(guān)聯(lián)和group by技巧真心點(diǎn)贊,這個(gè)稅率計(jì)算真心不如寫代碼去算。
2016-10-30
join on 只保留兩個(gè)表都存在的數(shù)據(jù)。
left join on : 會(huì)保留左表的全部數(shù)據(jù),不存在的字段用NULL表示。
left join on : 會(huì)保留左表的全部數(shù)據(jù),不存在的字段用NULL表示。
通過join進(jìn)行過濾的思路很贊。怕有的同學(xué)看不清楚sql,我這里根據(jù)記憶重寫一遍:
select a.user_name, b.skill, c.skill
from user1 as a inner join user_skills as b on a.id = b.user_id and b.skill = '念經(jīng)'
inner join user_skills as c on b.user_id = c.user_id and c.skill = '變化'
where b.skill_level > 0 and c.skill_level > 0;
select a.user_name, b.skill, c.skill
from user1 as a inner join user_skills as b on a.id = b.user_id and b.skill = '念經(jīng)'
inner join user_skills as c on b.user_id = c.user_id and c.skill = '變化'
where b.skill_level > 0 and c.skill_level > 0;
2016-10-29
select a.user_name,b.timestr,b.kills from user1 a join (select a.user_id,a.timestr,a.kills,(select count(1) from user_kills b where a.user_id = b.user_id and b.kills >= a.kills) as cnt from user_kills a group by user_id,timestr,kills having cnt = 1) b on a.id = b.user_id;
2016-08-15