Jenže to je špatně, protože pokud má někdo dvě práce se stejným časem, vrátí to obě, takže se Ti tam budou duplikovat řádky. Pokud teda chceš vypsat i danou práci, todle řešení nejde použít. V tom případě by bylo dobrým řešením použití window functions
WHERE row_number() = 1 OVER ( PARTITION BY project_id ORDER BY datum) AND Datum > ...
Je teda pravda, že na to bys nemoh dělat v mysql, ta to neumí.
Pokud danou práci nepotřebuješ, pak je zas takovýdle vnořování selectů pomalý a drahý, naprosto dostačuje
SELECT .... INNER JOIN .... GROUP BY .... HAVING MAX(DATUM) > ....