Optimisation d'une requête SQL
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:
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 !!!