Lo que pasa es que tu tabla subtasques(que es una tasque??? me suena como a un animal mitologico jejejeje
terrasque) tienes mas de una entrada para cada tasque, lo que ocasiona que la informacion se presente "duplicada" aqui lo que debes de hacer es nada mas obtener el registro que te interesa para esto revisando tus datos es el que tiene la fecha maxima de vencimiento, esto es correcto? de ser asi tu query quedaria parecido a esto:
Código SQL:
Ver originalSELECT * FROM tasques AS t
LEFT JOIN clients AS c ON (t.idclient = c.id)
LEFT JOIN
(SELECT s.idtasca, s.idestat, s.datavenciment FROM subtasques AS s
LEFT JOIN(SELECT MAX(datavencimient) AS datavenciment, idtasca FROM subtasques GROUP BY idtasca) AS r ON (s.idtasca=r.idtasca AND s.datavenciment =r.datavenciment )
ORDER BY s.idtasca, s.datarecepcio DESC
)
AS s ON (t.id = s.idtasca)
LEFT JOIN estat AS e ON (s.idestat = e.id)
ORDER BY client