簡體   English   中英

每個foreign_key的SQL最新記錄

[英]SQL latest record per foreign_key

我有以下兩個表:

  • 成分(id,名稱)
  • ingredient_prices(id,ingredient_id,price,created_at)

這樣一種成分可以有很多價格。 獲得每種成分最新輸入價格的最佳方法是什么? 我知道可以通過子選擇輕松完成,但我想知道是否有更有效的方法。

我是這樣做的:

SELECT i.*, p1.*
FROM ingredients i
 JOIN ingredient_prices p1 ON (i.id = p1.ingredient_id)
 LEFT OUTER JOIN ingredient_prices p2 ON (i.id = p2.ingredient_id 
   AND p1.created_at < p2.created_at)
WHERE p2.id IS NULL;

這將搜索比p1更新的價格(p2),如果找不到,則p1必須是最近的價格。

如果在給定日期可能有多個價格,那么您需要另一個術語來過濾掉副本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM