加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

sqlite中多个JOIN语句的优先级是什么?

发布时间:2020-12-12 18:56:55 所属栏目:百科 来源:网络整理
导读:令我惊讶的是,以下两个查询返回了不同的结果: 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.
令我惊讶的是,以下两个查询返回了不同的结果:

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;

我想象当你在zig上LEFT JOIN时无所谓,因为我在加入bar和baz时没有使用zig的列.然而,似乎在后者中,bar和baz的JOIN-ing吞噬了zig具有空值的行…为什么?

解决方法

这很好用.我错了.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读