Bonjour,
Je viens faire appel aux talents de développez.com car je me casse les dents sur une requête sans réussir à la rendre satisfaisante.
Pour expliquer le problème:
1/ J'ai une table affaire qui possède un champs responsable.
2/ La table affaire possède un champs fk_departement. Par une jointure sur departement et sur secteur, on peux connaître le directeur du secteur.
3/ Je possède aussi une table affaire_user qui contient des couples fk_affaire et fk_user. Qui permet d'ouvrir des droits sur l'affaire à un user lambda.
Je veux créer pour un utilisateur donnée un écran de l'ensemble des affaires dont il a accès ( soit il en est le responsable, soit le directeur du secteur de l'affaire, soit cité sur l'affaire).
Voici ce que j'ai pondu comme requête mais elle met de 15 à 30 secondes avant de donner une réponse.
Pour info,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 SELECT a.ref FROM ( llx_affaire as affaire LEFT JOIN llx_affaire_user AS au ON affaire.rowid = au.fk_affaire ), llx_departement AS dep, llx_secteur AS secteur WHERE affaire.fk_departement = dep.rowid AND dep.secteur = secteur.rowid AND ( au.fk_user =64 OR a.fk_responsable =64 OR secteur.fk_directeur =64 )
llx_affaire contient 6000 lignes.
llx_affaire_user contient 20 000 lignes.
llx_departement contient 20 lignes.
llx_secteur contient 6 lignes.
Merci d'avance de vos réponses et de votre aide.
Maximilien
Partager