我在MySQL DB中有一个下表。
create table shops( id bigint(20) NOT NULL AUTO_INCREMENT, shopid bigint(10) NOT NULL, first_level_shop_id int(11) NOT NULL DEFAULT '0', start_time datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, rate int(11) NOT NULL DEFAULT 0, PRIMARY KEY (`id`), KEY shopid (shopid,first_level_shop_id,start_time) ) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=latin1;
我想获取商店最新的first_level_shop_id的价格(需要考虑start_time)。 一个shopid有许多first_level_shop_id。 例如:
shopid,first_level_shop_id,rate,start_time 110,110001,20,2018-08-16 00:00:00 110,210011,50,2018-08-16 00:00:00
一个shopid 110下有许多first_level_shop_id。我想获取最新的一个。 请帮我写同样的SELECT查询。 谢谢。
答案 0 :(得分:2)
您可以使用相关子查询:
select s.*
from shops s
where s.start_time = (select max(s2.start_time)
from shops s2
where s2.shopid = s.shopid
);