【问题标题】:Limit for inner Join Table内部连接表的限制
【发布时间】:2015-09-29 12:29:24
【问题描述】:

我有一个场景,我要连接三个表并获取结果。

我的问题是我对连接表有应用限制。

以下面的示例为例,我有三个表 1)书籍和 2)客户 3)作者。我需要找到今天售出的书籍清单,其中包含作者和客户姓名,但是我只需要最后 n 个客户,而不是所有通过书籍 ID 的客户

                   Books            Customer                Authors
              ---------------   ----------------------    -------------
                Id  Name  AID        Id BID Name Date         AID  Name
                 1                 1  1  ABC                1    A1    
                 2                 2  1  CED                2    A2
                 3                 3  2  DFG

我们怎样才能做到这一点?

【问题讨论】:

    标签: postgresql


    【解决方案1】:

    您正在寻找LATERAL

    示例:

    SELECT B.Id, C.Name
    FROM Books B, 
         LATERAL (SELECT * FROM Customer WHERE B.ID=C.BID ORDER BY ID DESC LIMIT N) C
    WHERE B.ID = ANY(ids)
      AND Date=Current_date
    

    【讨论】:

    • 谢谢罗宾,我不喜欢这种子查询方法。他们有更好的方法还是这是唯一的方法?
    • 嗯...顺便说一句..您只需要最后一条记录,还是需要最后N条记录?
    • N条记录,Client将传递N条。
    • 放心,这比谷歌找到的其他答案更容易理解。
    猜你喜欢
    • 2011-07-04
    • 1970-01-01
    • 1970-01-01
    • 2014-05-17
    • 2018-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多