Las dos consultas están regresando resultados diferentes, para mi sorpresa:¿Cuál es la precedencia de múltiples declaraciones JOIN en sqlite?
SELECT *
FROM foo
JOIN bar
ON bar.id=foo.bar_id
JOIN baz
ON baz.id=foo.baz_id
LEFT JOIN zig
ON zig.foo_id=foo.id;
y:
SELECT *
FROM foo
LEFT JOIN zig
ON zig.foo_id=foo.id
JOIN bar
ON bar.id=foo.bar_id
JOIN baz
ON baz.id=foo.baz_id;
me estoy imaginando que debería no importa cuando LEFT JOIN
en zig
, ya que' m no usa las columnas zig
al unir bar
y baz
. Sin embargo, parece que en este último, el JOIN
-ing de bar
y baz
se traga las filas donde zig
tenían valores null
... ¿por qué?
Estoy empezando a sospechar que esto fue una simplificación inexacta de mi problema; esas dos consultas deberían ser idénticas, estaba haciendo otra cosa. –