我试图从最近的时间戳中获取数据,以及表中每个名称的 24 小时前的时间戳。我当前的方法进行两个单独的查询并组合结果。然而,这很慢,并且还阻止我对数据进行排序(通过评论等)
以下查询获取 24 小时前(最后)的数据
SELECT Price, comment ,name, timestamp
FROM details INNER JOIN car ON details .ID=car.ID
WHERE timestamp >= datetime('now','-1 day') and name = 'BMW'
order by timestamp asc limit 1
然后我有另一个类似的查询,它返回带有最新时间戳的数据(第一个)。
我有一个包含上述查询的 Java 方法,并将一个新的汽车名称传入 name = " " 部分。这首先返回每辆车的最后一个,然后我比较价格和评论详细信息并返回结果。
然而,事实证明这是一个非常缓慢的过程。这也意味着我无法有效地对结果进行排序。
我也尝试过使用 union,但是它确实提供了预期的结果
SELECT Price, comment ,name, max(timestamp)
FROM details INNER JOIN name ON details .ID=name .ID
UNION
SELECT Price, comment,name, min(timestamp)
FROM details INNER JOIN name ON details .ID=name .ID
WHERE timestamp >= datetime('now','-1 day')
group by name
order by comment desc
limit 40
执行此查询的正确方法是什么?
慕哥9229398
相关分类