Mysql selecciona el registro más antiguo para cada usuario

Estoy tratando de crear una lista en PHP de las entradas más antiguas para cada usuario en la base de datos.

SELECT *, MIN(`entries`.`entry_date`) AS entry_date FROM (`entries`) JOIN `user_profiles` ON `user_profiles`.`user_id` = `entries`.`user_id` WHERE `status` = 1 GROUP BY `entries`.`user_id` 

Estoy usando la consulta para recuperar de la tabla de entries la entrada con fecha más antigua que usa MIN() y unirme a la tabla user_profiles para otros datos. La consulta debe seleccionar la entrada más antigua para cada usuario. Parece que funciona, pero recupera el campo entry_date incorrecto en algunas entradas cuando hago eco de ellas. Por favor ayuda, no puedo ver lo que estoy haciendo mal ..

(user_id, entry_date) usar una subconsulta para obtener los pares (user_id, entry_date) para cada usuario, y luego unir eso con una consulta que seleccione los registros de interés:

 SELECT * FROM entries NATURAL JOIN ( SELECT user_id, MIN(entry_date) AS entry_date FROM entries GROUP BY user_id ) AS tmin JOIN user_profiles USING (user_id) WHERE status = 1 

¿Has intentado abordar el problema desde la tabla user_profiles en lugar de desde la tabla de entradas? Si un usuario no tiene entradas, no aparecerán en la consulta anterior.

Esto puede ayudar, pero no estoy seguro si es la solución completa:

 SELECT *, MIN(entries.entry_date) as entry_date FROM user_profiles LEFT JOIN entries USING (user_id) WHERE status = 1 GROUP BY user_profiles.user_id 

Además, está renombrando el MIN (entires.entry_date) como entry_date … pero ya tiene una columna llamada entry_date. Intente cambiar el nombre de las columnas derivadas a algo único como “min_entry_date”?