Bonjour,
Je sèche actuellement sur un problème je pense assez facile mais n'ayant pas pratiqué depuis un moment je suis bloqué.
Pour faire "simple", j'ai 3 tables :
VIDEOS
- id_video
- titre
ACTEURS
- id_acteur
- nom
ACTEURS_POUR_VIDEO
- id_video
- id_acteur
Je cherche à obtenir la liste de tous les acteurs existants dans la table ACTEURS avec un flag pour ceux participant par exemple dans la vidéo ayant id_video = 2.
J'ai commencé avec cette requette :
Et dans ce cas je n'obtiens que les acteurs jouant dans la video 2 (id_video =2).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT A. * , APV.id_video FROM acteurs A LEFT JOIN acteurs_pour_video APV ON APV.id_acteur = A.id_acteur WHERE id_video =2
Si j'utilises la requête suivante :
J'ai donc tous les acteurs de la table ACTEURS avec l'id_video différent de NULL lorsqu'un acteur joue dans une vidéo mais NULL lorsqu'aucun acteur ne joue dans aucune vidéo. Le problème est que je récupère plusieurs fois le même nom si acteur joue dans plusieurs vidéo alors que je le voudrais qu'une fois.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT A. * , APV.id_video FROM acteurs A LEFT JOIN acteurs_pour_video APV ON APV.id_acteur = A.id_acteur
Je ne sais pas si je suis clair mais si vous voyes une solution... je suis preneur !
Partager