Tôi nghĩ rằng bạn cần một cái gì đó dọc theo những dòng chung này. Tôi đã làm nó hơi khác so với câu hỏi của bạn. Thay vì nhận được top 10 sau đó loại bỏ các bản ghi. Nó nhận được 10 bản ghi hàng đầu sẽ không bị ẩn.
SELECT c.ID, c.fromuserid, c.roomid, c.text, u.nickname
FROM chats c
JOIN user u ON c.fromuserid = u.id
where c.roomid = 3 AND user.banned = 0
AND NOT EXISTS(
SELECT * FROM hide h
WHERE h.hideuser = c.fromuserid
AND orguser = $userid)
ORDER BY c.ID DESC
LIMIT 0,10