Hola cristian_botina:
En tu subconsulta estás poniendo dos tablas en el from pero no estás uniéndolas, por lo tanto se está realizando un producto cartesiano:
Código:
(select id_noticia
from noticias, noticias_ocultas
where id_usuario = 2695
Si ejecutas sólo la subconsulta, ¿cuántos registros te retorna?
Aquí dependería de la estructura de tus tablas para ver si es necesario hacer la unión o bastaría con que en la subconsulta aparezca solamente la tabla noticias_ocultas.
Como recomendación, cuando utilices más de una tabla en tu consulta utilica JOIN's. aunque el resultado es el mismo el tiempo de respuesta puede variar significativamente, es decir
En lugar de hacer esto:
Código:
FROM Tabla1, Tabla2 WHERE Tabla1.Campo = Tabla2.Campo
Haz esto:
Código:
FROM Tabla1 INNER JOIN Tabla2 ON Tabla1.Campo = Tabla2.Campo
Saludos
Leo.