Bonjour tout le monde,

J'aurais besoin de vos précieux conseils pour optimiser une requête que j'ai fait mais qui est bien trop lourde.

Voici ma requête :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
SELECT E.nom_entreprise,E.id_entreprise,A.dt_avis
FROM Entreprises E
JOIN Avis A
USING ( id_entreprise ) 
JOIN (
	SELECT A.id_entreprise,MAX( A.dt_avis ) AS dt_avis
	FROM Avis A
	group by A.id_entreprise
	ORDER BY dt_avis DESC
)t
USING ( id_entreprise, dt_avis ) 
WHERE E.ville_entreprise =  'paris'
AND E.cp_entreprise =  '75015'
GROUP BY E.id_entreprise
ORDER BY dt_avis DESC 
LIMIT 0 , 30
Voici l'explication de la SQL :
J'ai deux tables. Entreprises et Avis
La première table, j'ai dedans id_entreprise, nom_entreprise, ville_entreprise
La seconde table, j'ai dedans id_avis, id_entreprise, dt_avis (date de l'avis)

Le but de la requête, c'est d'afficher les avis les plus récent (dt_avis desc) selon la ville dans Entreprises en groupant les id_entreprise de Entreprises identiques.

Merci de votre aide !!!