Bonjour,
J'ai un petit soucis avec une requête SQL. J'effectue une jointure de deux tables afin d'en sorti les Id des membres, le problème est que la condition posée sur la table jointe fait que ça me retourne les membres en doublons. Le meilleur moyen étant d'utiliser EXISTS afin d'éviter de se retrouver avec des doublons, j'ai essayé mais en vain . Votre aide me serait précieuse et je vous en remercie d'avance. Voici le bout de requête à transformer :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
SELECT Id_membre
FROM mutualise.mem_membre mm
JOIN mutualise.mem_membre_interet cp ON cp.Ide_membre = mm.Id_membre AND (cp.Id_interet = 5 OR cp.Id_interet = 8 OR cp.Id_interet = 13
OR cp.Id_interet = 16 OR cp.Id_interet = 18)
WHERE mm.Confirmation = 1
AND mm.Date_desinscription IS NULL
AND Pub = 1
AND npai = 0;
AND (cp.Id_interet = 5 OR cp.Id_interet = 8 OR cp.Id_interet = 13 --> C'est ce morceau qui sort des doublons car UN membre peut avoir PLUSIEURS interet. L'utilisation d'un DISTINCT n'est pas envisageable, car il passe par une table temporaire et donc perd beaucoup de temps. L'idéal étant d'utiliser un EXISTS comme j'ai expliqué précédemment .
Cordialement, David.