【问题标题】:nesting joins right to left in postgres嵌套在postgres中从右到左连接
【发布时间】:2015-06-05 10:33:05
【问题描述】:

我有一个很大的疑问,但这一切都归结为:

SELECT * FROM user
LEFT JOIN tableA ON tableA.user_id = user.id
JOIN tableB ON tableB.a_id = tableA.id

现在,我得到的结果太少了。如果用户与 (tableA x tableB) 的组合不存在,我仍然想要用户。所以语法错误,我想要的是这样的:

SELECT * FROM user
LEFT JOIN (tableA ON tableA.user_id = user.id
           JOIN tableB ON tableB.a_id = tableA.id)

这可能吗,也许没有 RIGHT JOINS?

当然,我不想将第二个 JOIN 更改为 LEFT JOIN,因为那样会产生太多结果。

【问题讨论】:

    标签: postgresql join left-join


    【解决方案1】:

    你可以试试这个:

    SELECT * FROM user
    LEFT JOIN (SELECT * FROM tableA
               JOIN tableB ON tableB.a_id = tableA.id) t
    ON t.user_id = user.id
    

    如果存在,您需要在此处选择子查询中的不同列。

    【讨论】:

      猜你喜欢
      • 2019-03-13
      • 1970-01-01
      • 1970-01-01
      • 2014-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-28
      • 1970-01-01
      相关资源
      最近更新 更多