me gustaría confirmar que la consulta SQL¿El orden de las tablas en una unión importa, cuando se usan las uniones IZQUIERDAS (externas)?
SELECT ....
FROM apples,
oranges
LEFT JOIN kiwis ON kiwis.orange_id = oranges.id,
bananas
WHERE ....
es exactamente equivalente a otras permutaciones en el FROM subcláusula, como
SELECT ....
FROM oranges
LEFT JOIN kiwis ON kiwis.orange_id = oranges.id,
bananas,
apples
WHERE ....
o
SELECT ....
FROM bananas,
apples,
oranges
LEFT JOIN kiwis ON kiwis.orange_id = oranges.id
WHERE ....
siempre que la explícita LEFT JOIN, entre naranjas y kiwis, permanece intacto. Por lo que he leído en varios documentos, el conjunto devuelto debe ser exactamente el mismo.
Realmente solo me preocupan los resultados de la consulta, no su rendimiento en una base de datos real. (Estoy usando PostgreSQL 8.3, que AFAIK no admite sugerencias del optimizador sobre el orden de unión, y tratará de crear un plan de consulta óptimo automáticamente).
¿Lo has probado? El orden de 'JOIN' s es irrelevante a menos que necesite resultados específicos del anterior' JOIN'' – Matthew
¿Los plátanos, las manzanas y las naranjas son un producto cartesiano? ¿O la cláusula "join-in-WHERE"? – gbn
EXPLAIN le mostrará: http://www.postgresql.org/docs/current/static/sql-explain.html Y no hay ningún motivo para insinuar nada, PostgreSQL es bastante inteligente. –