Die folgenden beiden Abfragen sind wieder unterschiedliche Ergebnisse, zu meiner Überraschung:Was ist der Vorrang mehrerer JOIN-Anweisungen 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;
und:
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;
Ich stelle mir vor, dass es keine Rolle, sollten, wenn Sie LEFT JOIN
auf zig
, da ich m nicht verwendet zig
's Spalten beim Beitritt der bar
und baz
. Es scheint jedoch, dass in dem letzten, die JOIN
-ing von bar
und baz
schluckt die Zeilen, wo zig
hatte null
Werte ... warum ist das?
Ich fange an zu vermuten, dass dies eine ungenaue Vereinfachung meines Problems war - diese zwei Abfragen sollten wirklich identisch sein, ich tat etwas anderes. –