SQL выбор идентификатора сортировка по дате - PullRequest
0 голосов
/ 23 марта 2020

Я хочу выбрать id в таблице, отсортировать по дате и показать только 10 самых новых записей.

Я уже пробовал следующую команду:

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

Может кто-нибудь, помогите мне, пожалуйста? :)

Ответы [ 3 ]

3 голосов
/ 23 марта 2020

Похоже, вы хотите фильтрации, сортировки и ограничения:

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 голосов
/ 23 марта 2020

Надеюсь, это может кому-нибудь помочь.

Этот вопрос связан именно с любым диапазоном даты и времени. Так что вы можете легко настроить для вашего приложения.

/* 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
0 голосов
/ 23 марта 2020

SELECT TOP 10 *
FROM weather
WHERE DATUM = (SELECT MAX(DATUM)
               FROM orders
               WHERE ID='0')
order by DATUM DESC
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...