2015-09-29 60 views
0

我有一個場景,我加入三張表並獲得結果。限制內部加入表

我的問題是我有適用於加入表的限制。

拿下面的例子,我有三個表1)書籍和2)客戶3)作者。我需要找到目前銷售與作者和用戶名書單,但是我只需要最後的第n個用戶不是所有的通過傳遞圖書編號

    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 

我們怎樣才能做到這一點?

回答

2

您正在尋找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 
+0

感謝羅賓,我不喜歡這樣子查詢的方法。他們有沒有更好的方法,或者這是唯一的方法? –

+0

嗯......順便說一句......你只需要最後一張唱片,還是需要最後的N張唱片? –

+0

N條記錄,客戶將通過N. –