Tôi là một truy vấn MySQL noobie vì vậy tôi chắc chắn đây là câu hỏi có câu trả lời rõ ràng.Nhóm MySQL theo và CÓ
Nhưng, tôi đã xem xét hai truy vấn này. Họ sẽ trả về các bộ kết quả khác nhau? Tôi hiểu rằng quá trình phân loại sẽ bắt đầu khác nhau, nhưng tôi tin rằng họ sẽ trả lại kết quả tương tự với truy vấn đầu tiên có hiệu quả hơn một chút?
Query 1: CÓ, sau đó VÀ
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)
Query 2: WHERE, sau đó CÓ
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
tuyệt vời, cảm ơn! Thú vị, tôi sẽ phải chạy một số xét nghiệm. Tôi nghĩ hiệu quả hơn bởi vì có ít hồ sơ để so sánh phần NOT IN banned_users sau khi nó được nhóm lại trước đây? Nếu điều đó hợp lý. – kimmothy
Có, điều kiện đó sẽ chỉ được kiểm tra cho các nhóm theo kết quả, không phải tất cả, trước khi nhóm. – aorcsik
@kimmothy: Truy vấn phụ trong 'NOT IN' thực sự chỉ cần được thực thi một lần. – a1ex07