在Mysql中获取最新信息

时间:2018-08-16 02:15:02

标签: mysql sql

我在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查询。 谢谢。

1 个答案:

答案 0 :(得分:2)

您可以使用相关子查询:

select s.*
from shops s
where s.start_time = (select max(s2.start_time)
                      from shops s2
                      where s2.shopid = s.shopid
                     );