[英]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.