简体   繁体   English

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

[英]max date from different tables with same primary key in mysql

3 tables: Item has 7k rows but Price and Data tables are individually approx 1gb in size with 10 million rows each. 3个表:Item有7k行,但是Price和Data表的大小分别约为1gb,每个表有1000万行。

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

How to get min(itemid) such that max(itemDate) from Price> max(itemDate) from Data for every itemid? 如何为每个itemid从价格>数据的max(itemDate)中获取min(itemid),从而获得max(itemDate)?

MyApproach (Working but very slow takes approx. 2 hrs for this query) 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);

Here you need to optimize your query, following is an example. 在这里,您需要优化查询,下面是一个示例。 You can use indexes for further optimization. 您可以使用索引进行进一步的优化。

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));

hope this helps 希望这可以帮助

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM