令我惊讶的是,以下两个查询返回了不同的结果:
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;
和:
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;
我想象,它不应该的问题,当你LEFT JOIN
在zig
,因为我没有使用,zig
在加入时的列bar
和baz
.然而,似乎在后者的JOIN
的-ing bar
和baz
吞噬其中行zig
有null
值......这是为什么?