Disons que j'Interrogation de la DB comme suit:Les moteurs SQL sont-ils optimisés aussi loin? (Voir exemple)
SELECT
T3.ID
T1.factor1 * T2.factor2 * T3.VAL,
T1.factor1 * T2.factor2 * T3.VAL,
T1.factor1 * T2.factor2 * T3.VAL,
T1.factor1 * T2.factor2 * T3.VAL,
(...)
T1.factor1 * T2.factor2 * T3.VAL
FROM
Table3 AS T3
LEFT JOIN Table2 AS T2 ON T3.ID = T2.Table3ID
LEFT JOIN Table1 AS T1 ON T3.ID = T1.Table3ID
Ma question est:
sera le moteur T1.factor1 * T2.factor2
effectuer, une fois ou N fois?
(s'il vous plaît donner des réponses pertinentes à votre moteur de DB de choix!)
Vous pouvez aussi donner une réponse plus générale (disons qu'il y aurait P facteurs au lieu d'2.
EDIT: vous pouvez remplacer T1.factor1 * T2.factor2
par une fonction informatiquement intenstive de votre choix, qui aurait une valeur distincte pour chaque ligne de sortie
Vous n'avez pas de conditions de jointure – Jodrell
Il semble que tous les éléments de la liste SELECT soient distincts - pas de dupes - quelle est alors votre question? Tous ces éléments seront évalués une fois, dans quel contexte prévoyez-vous qu'ils seront évalués * N * fois? – Charleh
@Jodrell: ajouté! (mais la question se concentre sur les facteurs :)) –