Bonjour,
j'ai une requête qui permet de me récupérer quelques infos sur un utilisateur :Pour l'instant mon algo fait que je parcours chaque enregistrement (il y en a 92 en tout), et pour chacun, je lance 2 requêtes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT u.ID_USER, u.EMAIL, e.LDAP FROM t_users AS u LEFT JOIN t_entites AS e ON u.ID_ENTITE = e.ID_ENTITE WHERE u.IS_SUPERVISEUR = '1' GROUP BY u.ID_USER, u.EMAIL, e.LDAP ORDER BY u.EMAIL;
1ère2ème
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 SELECT COUNT(i.ID_IDEE) AS NB_IDEES FROM t_idees AS i INNER JOIN t_idees_dates AS d ON i.ID_IDEE = d.ID_IDEE WHERE ((i.ID_SUPERVISEUR = 10897 AND i.ID_STATUT = 2) OR(i.ID_EXPERT IN (SELECT ID_USER FROM t_users WHERE ID_SUPERVISEUR = 10897) AND i.ID_STATUT BETWEEN 2 AND 4)) AND i.ABANDON = 1;dans lesquelles ID_SUPERVISEUR est égal à l'ID_USER de la 1ère requête. Et ma page est super longue à s'afficher du coup, est-ce que vous pensez que c'est possible de regrouper les 3 requêtes ? Je continue à chercher en attendant..
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 SELECT ID_STATUT, count(i.ID_IDEE) AS NB_IDEES FROM t_idees AS i INNER JOIN t_idees_dates AS d ON i.ID_IDEE = d.ID_IDEE WHERE i.ID_EXPERT IN (SELECT ID_USER FROM t_users WHERE ID_SUPERVISEUR = 10897) AND ((i.ID_STATUT IN (2, 3, 4) AND i.ABANDON <> 1) OR(i.ID_STATUT IN (5, 6, 7, 8) AND i.CLOTURE <> 1)) GROUP BY i.ID_STATUT ORDER BY i.ID_STATUT ASC;
Merci !
Partager