Anda benar - Anda bisa melakukan yang lebih baik. Lihat artikel ini oleh Quassnoi untuk detailnya tapi kesimpulannya adalah:
Kueri Anda ditulis ulang menggunakan NOT IN
bisa terlihat seperti ini:
SELECT *
FROM posts
WHERE posts.id NOT IN (SELECT post_id
FROM comments
WHERE comments.comment_type = 'good'
AND comments.created_at BETWEEN '2010-05-01 00:00:00'
AND '2010-05-01 23:59:59')