Código sql:
Ver originalSELECT *
FROM (
SELECT `egresados`.*, `practicas`.*
FROM `egresados`
LEFT JOIN `practicas` ON `egresados`.`user_id` = `practicas`.`user_id`
WHERE `egresados`.`nombre` LIKE '%juan%'
ORDER BY `practicas`.`uid` DESC) TablaTemp
GROUP BY `user_id`;
Estoy suponiendo que `uid`es un campo de la tabla `prácticas`, cosa que no has aclarado.
Esta forma no es la más eficiente, pero puede ser muy efectiva. La más eficiente puede requerir un tercer nivel de consulta o un filtro más fino en el WHERE de la primera subconsulta.
Como detalle adicional, asegúrate de realmente necesitar todos los campos, porque estás usando
tabla.*, lo que es la forma más ineficiente de consulta. SI no necesitas TODOS los campos de ambas tablas, mejor indica qué campos de cada tabla vas a usar. Traer todos, es traer basura que exige tiempo de TX perdido.