mysql中具有相同主键的不同表的最大日期

时间:2018-02-12 10:04:42

标签: mysql sql

3个表:项目有7k行,但价格和数据表大小分别约为1GB,每行1000万行。

Item- itemid,itemName
Price- itemid,itemPrice,itemDate(Date)
Data- itemid,itemPrice,itemDate(Date),Some other fields

如何从价格>获得最小(itemid)以及max(itemDate)每个itemid的数据的最大值(itemDate)?

MyApproach(工作但很慢,此查询大约需要2小时)

select min(itemid)
from Price p
where p.itemid in (select itemid from Item)
  and p.itemDate > (select max(itemDate) from Data d where d.itemid = p.itemid);

1 个答案:

答案 0 :(得分:0)

以下是一个示例,您需要优化查询。您可以使用索引进行进一步优化。

select min(itemid) from Price p join item i using(itemid) where  and p.itemDate > (select max(itemDate) from Data d join price using(itemid));

希望这会有所帮助