为最后10个userID选择每个userID的每条记录[关闭]

问题描述 投票:-1回答:2

我目前的简单查询是

SELECT * FROM myTable

它返回表中的每一行。现在我希望它返回最后10个userID的每一行,但是一些userID有2条记录,大约4条,大约5条等。

mysql sql select id
2个回答
0
投票

如果最后10个userId你的意思是那些数字最大的那个,你可以这样做:

select t.*
from myTable t
where t.userId >= (select distinct t2.userId
                   from mytable t2
                   order by t2.userId desc
                   limit 9, 1
                  );

以上假设您至少有10个用户ID。你可以解决这个问题:

select t.*
from myTable t
where t.userId >= (select min(t2.userId)
                   from (select distinct t2.userId
                         from mytable t2
                         order by t2.userId desc
                         limit 10
                        ) t2
                  );

0
投票

选择T. * from myTable作为T inner join(从userid desc的myTable顺序中选择不同的前10个userid)作为T.userid = Q.userid上的Q

© www.soinside.com 2019 - 2024. All rights reserved.