Soy un noobie de consulta MySQL, así que estoy seguro de que esta es una pregunta con una respuesta obvia.MySQL Group By y HAVING
Pero, estaba viendo estas dos consultas. ¿Regresarán diferentes conjuntos de resultados? Entiendo que el proceso de clasificación comenzaría de manera diferente, pero creo que devolverán los mismos resultados y la primera consulta será un poco más eficiente.
de consulta 1: HAVING, entonces Y
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)
Consulta 2: WHERE, luego tener
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
genial, gracias! Interesante, tendré que hacer algunas pruebas. Pensé que era más eficiente porque hay menos registros para comparar la porción NOT IN banned_users después de agruparla que antes. Si eso tiene sentido. – kimmothy
Sí, esa condición se probaría solo para agruparla por resultados, no todos, antes de la agrupación. – aorcsik
@kimmothy: La subconsulta en 'NOT IN' realmente necesita ejecutarse solo una vez. – a1ex07