我有一个场景,我正在加入三张桌子并获得结果。
我的问题是我对连接表有限制。
以下为例,我有三张表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
我们如何才能实现这一目标?
答案 0 :(得分:3)
您正在寻找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