En base de datos, el orden de los factores, si altera el producto. Esto significa que salvo en el uso de INNER JOIN, los resultados pueden variar de acuerdo a cuál sea la primera tabla en ser leída.
Como en tu caso deberías usar LEFT JOIN esto tiene aún más imoprtancia.
Tienes que iniciar con la tabla que contenga la lista completa de todo lo que puede encontrarse, luego en la sub lista, que sólo devolverá aquellos donde existan relacioens, y así sucesivamente, de lo mayor a lo menor.
Código MySQL:
Ver original P.title,
PS.cantidad,
PS.PVR,
PS.DTO,
PM.name,
PT.descripcion
pe_productos P
Esto otro devuelve todos los productos, tengan o no subproducto y marca, y los subproductos serán devueltos tengan o no tipo.
Código MySQL:
Ver original P.title,
PS.cantidad,
PS.PVR,
PS.DTO,
PM.name,
PT.descripcion
pe_productos P
LEFT JOIN pe_subproductos
ON P.id_pro
= producto_id
LEFT JOIN pe_marcas PM
ON P.marca_id
= PM.marca_id
;
Si ninguna de las consultas devuelve registros, tienes problemas con los datos de las tablas...