這個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