Mysql SQL从表中获取每个项的最新记录
我试图使用Mysql SQL从表中获取每个项的最新记录,mysql,sql,mysql-8.0,Mysql,Sql,Mysql 8.0,我试图使用max(Created_at)并按stockId分组来查询数据库,以获取每个库存的最新记录,但这样一来,它会将每个项目的id放在第一位,并在最后一位创建 我怎样才能让它集体带来最新的记录?请帮忙。 我的质询如下: SELECT a.id as A_id, b.id as B_id, max(b.Created_at) AS Created_at FROM beta b INNER JOIN alpha a ON b.a_id = a.id GROUP BY a.id
max(Created_at)
并按stockId
分组来查询数据库,以获取每个库存的最新记录,但这样一来,它会将每个项目的id放在第一位,并在最后一位创建
我怎样才能让它集体带来最新的记录?请帮忙。
我的质询如下:
SELECT a.id as A_id, b.id as B_id, max(b.Created_at) AS Created_at
FROM beta b
INNER JOIN alpha a ON b.a_id = a.id
GROUP BY a.id
您可以使用分析函数,如行数()
:
其中,您的记录按stockID(a.id
)分组,并按created\u在
列中向下排序后选择最新的。如果在每个分组的stockId
的值处创建了相等的关系,并且所有令人满意的结果都应该包含在结果集中,那么将行数()
替换为稠密列数()
可以使用分析函数,例如行数()
:
其中,您的记录按stockID(a.id
)分组,并按created\u在
列中向下排序后选择最新的。如果在每个分组的stockId
的值处创建了相等的关系,并且所有令人满意的结果都应该包含在结果集中,那么将行数()
替换为密集秩()
declare @item table
(
itemid int
,itemname varchar(100)
)
insert into @item
values(1,'A'),(2,'B'),(3,'C')
declare @stock table
(
itemid int
,stockid int
,updatedate datetime
)
insert into @stock
values(1,1,'2020-08-04 13:11'),(1,1,'2020-08-04 14:11')
,(1,2,'2020-08-04 15:11'),(1,2,'2020-08-04 14:11')
select * from @item a
inner join
(select stockid,itemid,max(updatedate)lastupdatedate from @stock
group by stockid,itemid
)b on a.itemid=b.itemid
我知道你需要这样
declare @item table
(
itemid int
,itemname varchar(100)
)
insert into @item
values(1,'A'),(2,'B'),(3,'C')
declare @stock table
(
itemid int
,stockid int
,updatedate datetime
)
insert into @stock
values(1,1,'2020-08-04 13:11'),(1,1,'2020-08-04 14:11')
,(1,2,'2020-08-04 15:11'),(1,2,'2020-08-04 14:11')
select * from @item a
inner join
(select stockid,itemid,max(updatedate)lastupdatedate from @stock
group by stockid,itemid
)b on a.itemid=b.itemid
请看《草莓》。我希望这就是你的意思@Barbaros Ozhan。8+请看@草莓。我希望这就是你的意思@Barbaros Ozhan。8+