我目前的简单查询是
SELECT * FROM myTable
它返回表中的每一行。现在我希望它返回最后10个userID的每一行,但是一些userID有2条记录,大约4条,大约5条等。
如果最后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
);
选择T. * from myTable作为T inner join(从userid desc的myTable顺序中选择不同的前10个userid)作为T.userid = Q.userid上的Q