我是一個MySQL查詢noobie,所以我確信這是一個明顯的答案。MySQL Group By和HAVING
但是,我正在看這兩個查詢。他們會返回不同的結果集?我知道排序過程會以不同的方式開始,但我相信他們會返回相同的結果,而第一個查詢的效率稍高一點。
查詢1:HAVING,然後與
SELECT user_id
FROM forum_posts
GROUP BY user_id
HAVING COUNT(id) >= 100
AND user_id NOT IN (SELECT user_id FROM banned_users)
查詢2:式中,然後將具有
SELECT user_id
FROM forum_posts
WHERE user_id NOT IN(SELECT user_id FROM banned_users)
GROUP BY user_id
HAVING COUNT(id) >= 100
太好了,謝謝!有趣的是,我將不得不運行一些測試。我認爲效率更高,因爲在分組之後比較NOT IN banned_users部分的記錄比較少,如果這是有道理的。 – kimmothy
是的,該條件將僅在分組之前根據結果分組進行測試,而不是全部分組。 – aorcsik
@ kimmothy:'NOT IN'中的子查詢確實只需要執行一次。 – a1ex07