Page 1 sur 1

optimisation requete sql

Posté : 04 nov. 2012, 13:58
par Invité
Bonjour à tous,

J'ai écrit la requête suivante qui fonctionne très bien:

Code : Tout sélectionner

SELECT DISTINCT td.tid, td.name FROM term_data td LEFT JOIN term_node tn ON tn.tid = td.tid WHERE td.vid = 6 AND tn.nid IN ( SELECT n.nid FROM node n INNER JOIN term_node tn ON n.nid = tn.nid INNER JOIN term_data td ON tn.tid = td.tid WHERE tn.tid = 12 AND n.status =1 )
J'ai essayé de l'optimiser au mieux mais je souhaite savoir s'il est possible de l'écrire de manière plus performante, ou si c'est déjà top ;)
Merci pour vos réponses.

Re: optimisation requete sql

Posté : 05 nov. 2012, 21:08
par sadeq
Bonjour, voici un essai de simplification en remplaçant la relation ensembliste "IN SELECT" par la méthode relationnelle des jointures "JOIN".
SELECT DISTINCT td.tid, td.name
FROM term_data td 
LEFT JOIN (term_node tn  JOIN node n ON n.nid = tn.nid) ON tn.tid = td.tid
WHERE td.vid = 6 AND tn.tid = 12 AND n.status =1