这个sql分组求top n应该是有问题的,如果一个人在3个不同时间段kill的人相同,比如都kill了一个人,那么就会取不出结果了。
2018-08-11
已采纳回答 / 慕粉_蓝
你是知道id=3的这条记录满足条件'user1中user_name和user2中user_name相同'当你不知道具体哪条记录满足条件的时候就只能利用条件去查询表2中'与表1的字段user_name相同的记录'
2018-07-09
SELECT
t1.id,
t1.NAME,
t2.num,
count( 1 ) cnt
FROM
tbl_goods t1
LEFT JOIN tbl_sale t2 ON t1.id = t2.goods_id
LEFT JOIN tbl_sale t3 ON t2.goods_id = t3.goods_id
WHERE
t2.num <= t3.num
GROUP BY
1,
2,
3
HAVING
cnt <= 2
---------------------------------
join关联查询
t1.id,
t1.NAME,
t2.num,
count( 1 ) cnt
FROM
tbl_goods t1
LEFT JOIN tbl_sale t2 ON t1.id = t2.goods_id
LEFT JOIN tbl_sale t3 ON t2.goods_id = t3.goods_id
WHERE
t2.num <= t3.num
GROUP BY
1,
2,
3
HAVING
cnt <= 2
---------------------------------
join关联查询
2018-07-08
已采纳回答 / jamieacejiang
加了where b.user_id = c.user_id这个条件,max(c.kills)是可变的(会求出3个userid的各个的最大值,然后去外面卡where条件),不加,这个值是固定的(是这些userid里最大的一个值,无意义)。
2018-07-06
前面说找自己问题的,你真是够了,老师前面明确写着is null,后面自己写错了,然后让我们找自己的问题?开玩笑吧
2018-06-28