SQL选择ID按日期排序

问题描述 投票:0回答:3

我想在表格中选择一个id,按日期对其进行排序,并仅显示10个最新条目。

我已经尝试过以下命令:

SELECT * FROM weather 
  WHERE DATUM = (SELECT MAX(DATUM) WHERE ID='0')

有人可以帮我吗? :)

sql sorting date id
3个回答
3
投票

您似乎想要过滤,排序和限制:

select *
from weather
where id = 0          -- filter on the given "id"
order by datum desc   -- sort by most recent date
limit 10              -- keep the 10 most recent only

0
投票

SELECT TOP 10 *
FROM weather
WHERE DATUM = (SELECT MAX(DATUM)
               FROM orders
               WHERE ID='0')
order by DATUM DESC

0
投票

我希望这可以帮助任何人。

此问题与任何日期和时间范围相关。因此,您可以轻松地为您的应用程序自定义。

/* mySQL doesn't permit to use limit clause on sub query at where clause statement.
   Therefore we are using join clause as an alternative.
*/

select w.*
from weather w
inner join (
    select min(DATUM) fromDate, max(DATUM) toDate
    from (
        select DATUM from ORDERS where ID = '0'
        order by DATUM desc limit 10
    ) t
) o
on w.DATUM between o.fromDate and o.toDate
order by w.DATUM desc

/* Transaction table with limited rows option */

select w.*
from weather w
inner join (
    select min(DATUM) fromDate, max(DATUM) toDate
    from orders where ID = '0'
) o
on w.DATUM between o.fromDate and o.toDate
order by w.DATUM desc limit 10
© www.soinside.com 2019 - 2024. All rights reserved.