USE LIMIT nas subconsultas para retornar apenas um registro, pois você está usando distinto, pode retornar mais de um registro