Bonjour.
mon code suivant me retourne des resultats avec un role.uti_id='42' et se fige (rien se passe) quand le role.uti_id ='318'
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
SELECT distinct(prj.prj_code), ent.ent_nom as entity, ent2.ent_nom as departement 
FROM projet prj, projet_entite prjent, projet_entite prjent2,
entite ent, entite ent2 , uti_profil role 
where prjent.prj_code = prj.prj_code 
and prjent.rsp_entite=1 
and ent.ent_code = prjent.ent_code 
and ent.ent_niv=2 
and prjent2.prj_code = prj.prj_code 
and prjent2.rsp_entite=1 
and ent2.ent_code = prjent2.ent_code 
and ent2.ent_niv=3 
and role.uti_id = '318' 
and role.prj_code = prj.prj_code 
and prj.prj_code <> "I" and prj.prj_code <> "*"
J'ai essayé de recrire la requete avec des jointures normalisés (JOIN), mais pas d'amélioration, pire, il me donne pas les mêmes résultats :Code avec jointure
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
SELECT  DISTINCT ( prj.prj_code ), ent.ent_nom AS entity, ent2.ent_nom AS departement
FROM projet prj
INNER JOIN uti_profil role ON role.prj_code = prj.prj_code
INNER JOIN projet_entite prjent ON prj.prj_code = prjent.prj_code
INNER JOIN projet_entite prjent2 ON prj.prj_code = prjent2.prj_code
INNER JOIN entite ent ON ent.ent_code = prjent.ent_code
INNER JOIN entite ent2 ON ent2.ent_code = prjent2.ent_code
 
WHERE role.uti_id =  '318' AND ent.ent_niv = 2 AND prjent2.rsp_entite = 1 AND prjent.rsp_entite = 1 AND prj.prj_code <>  "I" AND prj.prj_code <>  "*"
Parfois , role.util_id='318' quand même retourne quelque chose , mais aprés 2 min !!

Avez vous une idée comment optimisez et faire marchez la requête pour qu'il me donne les mêmes résultats du premier code?

Merci d'avance