繁体   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