Bonjour à tous,
J'ai besoin d'effectuer une requète qui me parait assez simple, mais pour laquelle je ne connais pas la méthodologie à suivre.
- L'environnement:
TBL_TRAVAUX (liste des intervention d'un service)
id_tvx,
demandeur(=id_utilisateur de la personne qui demande le travail),
... (= et pleins d'autres champs)
TBL_UTILISATEURS (liste des utilisateurs du système)
id_utilisateur,
...
TBL_DESTINATAIRES (table d'association pour avoir la liste des destinataires d'un travail)
id_tvx,
id_utilisateur
- Ma demande:
Maintenant je voudrais une requête qui me retourne:
La liste des travaux pour lesquels le demandeur n'est pas dans la liste des destinataire.
- La preuve que j'ai cherché un peu :
Voici une mauvaise piste (c ma requête, et elle ne me renvoie pas ce que je veux ;-) ):
Pour moi, mon problème viens du id_tvx = id_tvx, est ce qu'une boucle est obligatoire ... ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT id_tvx FROM `TBL_TRAVAUX` T INNER JOIN `TBL_DESTINATAIRES` D on T.id_tvx = D.id_tvx WHERE demandeur NOT IN (SELECT id_utilisateur FROM TBL_DESTINATAIRES WHERE id_tvx = id_tvx)
Dans l'autre sens, voici la requête qui me donne tous les travaux pour le quel le demandeur est également destinataire:
D'avance merci à ceux qui me liront, et grand merci à ceux qui me répondront.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT DISTINCT id_tvx FROM `TBL_TRAVAUX` T LEFT OUTER JOIN DESTINATAIRE D ON T.id_tvx = D.id_tvx WHERE demandeur = id_user
Partager