Join

無法為子查詢添加限制

  • February 11, 2018

這是我的第一個問題,請多多包涵。我有以下表格

物品

id
name
description

itemPurchaseDetail

id
item_id(FK)
branch_id(FK)
purchaseRate
date

庫存

id
item_id(FK)
branch_id(FK)
quantity

我必須獲取特定分支中的所有項目(假設 branch_id=1)、庫存數量、名稱、描述和最後購買率。這個大膽的部分讓我很頭疼。

連結到小提琴: 小提琴

select   i.id, 
         i.name, 
         i.description, 
         s.quantity stock,
         (select purchaseRate
          from itemPurchaseDetail
          where item_id = i.id
          order by PurchaseDate desc
          limit 1) lastPurchaseRate 
from     item i
join     (select distinct item_id, branch_id
          from itemPurchaseDetail) pd
on       pd.item_id = i.id
join     stock s
on       s.item_id = i.id
and      s.branch_id = pd.branch_id;
編號 | 姓名 | 描述 | 庫存| 最後購買率
-: | :---- | :---------- | ----: | ---------------:
 1 | 項目1 | 描述 1 | 100 | 222
 2 | 項目2 | 描述 2 | 200 | 444
 3 | 項目3 | 描述 3 | 300 | 666

dbfiddle在這裡

引用自:https://dba.stackexchange.com/questions/197617