Bonjour,
Je vous explique :
j'ai une table `epreuves` qui a entre autre un champ epreuve_id, et une table `validation` qui a entre autre un champ epreuve_id et un champ user_id.
Étant donné que plusieurs users peuvent valider la même épreuve, j'ai une relation de type 1:n.
Je voudrais simplement récupérer les infos de la table `epreuves` connaissant l'id de l'épreuve. Et en même temps savoir si l'user a déjà validé l'épreuve.
En fait ma requête ressemble à ça :
Voilà, je n'ai rien trouvé de mieux que de mettre AND val.user_id=$user_id dans la condition de jointure. Je trouve que ça fait un peu sale de mettre dans le ON une condition qui ne fait pas intervenir les 2 tables.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT ep.reponse, ep.points, val.date_valid FROM `challenges_epreuves` AS ep LEFT JOIN `challenges_validation` AS val ON (ep.id_epreuve=val.id_epreuve AND val.user_id=$user_id) WHERE ep.id_epreuve=$idep
Y'a-t-il une autre façon de faire que je n'aurais pas vu ?
Ou sinon est-ce généralisable à d'autres cas ?
Merci d'avance
Partager