我有一个表productHistory
productHistory (id_H , id_product , name , tsInsert);
我想从表productHistory获取给定期间的最后一个产品(开始,结束): tsInsert必须在开始和结束之间。
我可以这样做:
select max(id_H)
from productHistory
where tsInsert>=:start and tsInsert <=:end
group by id_product;
然后从productHistory中选择所有,其中id_H在上一个选择中。
此查询非常繁重,是否还有其他使用右连接的解决方案?
答案 0 :(得分:0)
我尝试了这个解决方案:
SELECT * FROM productHistory x
INNER JOIN
(
SELECT MAX(id_H) as maxId
FROM productHistory
GROUP id_product
) y
ON x.id_H = y.maxId
and x.TSINSERT >=:start and x.TSINSERT <=:end