Estás complicando demasiado y leyendo dos veces la misma tabla, con el agregado que lo haces por cada registro devuelto por la tercera tabla.
¿Nunca has usado JOIN o INNER JOIN? Sale en cualquier manual de SQL basico; trata de leer sobre el porque te ayudará y mucho.
Tip: Trata de no usar términos en inglés para los nombres. Son propensos a chocar con las palabras reservadas del DBMS y generar errores de sintaxis indetectables.
type,
status y cosas así son palabras reservadas.