Le seguenti due query stanno tornando risultati diversi, con mia grande sorpresa:Qual è la precedenza di più istruzioni JOIN in 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;
e:
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;
sto immaginando che non dovrebbe importa quando LEFT JOIN
su zig
, dal momento che' m non utilizzando le colonne zig
quando si uniscono allo bar
e baz
. Tuttavia, sembra che in quest'ultimo, l' -ing di bar
e baz
inghiotti le righe dove zig
aveva valori null
... perché?
Sto iniziando a sospettare che questa sia una semplificazione imprecisa del mio problema - quelle due domande dovrebbero essere identiche, stavo facendo qualcos'altro. –