user_id | user_destination | user_date_out | user_date_in | user_purpose | uid
0095 | NYC | 2010-11-25 | 2010-11-26 | Work | 1
0105 | Seattle | 2010-11-15 | 2010-11-20 | Work | 2
0095 | Home | 2010-11-10 | 2010-11-11 | Personal | 3
| Nashville | 2010-11-10 | 2010-11-12 | Doctober | 4
J'ai les données ci-dessus dans une table MySQL. J'ai besoin d'une requête qui produira la ligne si c'est le user_date_out le plus récent pour cet user_id. Difficile à expliquer, mais les lignes qui devraient être affichées via la requête sont les uid 2,3 et 4 (UID 1 tomberait parce que user_date_out est "plus ancien" que UID 3 pour le même utilisateur). Est-ce que quelqu'un peut m'aider avec ça? Merci d'avance!Aide à la requête MySQL (résultats semi-uniques)
EDIT: Je l'ai résolu en utilisant la requête suivante:
SELECT *
FROM `table`
WHERE `uid` = (
SELECT `uid`
FROM `table` as `alt`
WHERE `alt`.`user_id` = `table`.`user_id`
ORDER BY `user_date_out`
LIMIT 1
)
ORDER BY `user_date_out`
Trouvé: http://stackoverflow.com/questions/924494/mysql-group-by-ordering – krx
@krio, ça a aidé !! J'ai supprimé la dernière "limite 3" et retiré DESC de la commande, et j'ai obtenu les résultats dont j'avais besoin! Merci pour votre aide! – Trevor
@krio - pouvez-vous coller cette réponse dans une réponse ici? – warren