1
我有以下2个表:SQL最新记录每foreign_key
- 成分(ID,姓名)
- ingredient_prices(ID,ingredient_id,价格,created_at)
这样一种成分可以有很多价格。 什么是获得每种成分的最新输入价格的最佳方式?我知道这可以通过子选择轻松完成,但是我想知道是否有更有效的方法来完成它。
我有以下2个表:SQL最新记录每foreign_key
这样一种成分可以有很多价格。 什么是获得每种成分的最新输入价格的最佳方式?我知道这可以通过子选择轻松完成,但是我想知道是否有更有效的方法来完成它。
我做这种方式:
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;
此搜索价格(P2)比P1更近,如果没有被发现,那么P1必须是最近的价格。
如果在给定的日期有多个价格的可能性,那么您需要另一个术语来过滤掉重复。