@jack33

Как сделать дополнительную выборку записей?

Получаю записи из таблицы:
SELECT * FROM `list` WHERE user='1' ORDER BY date DESC, id DESC LIMIT 0, 25

Как проверить есть ли в таблице ещё записи с такой же датой как и у последний записи из запроса и вывести все эти записи из обоих запросов?
  • Вопрос задан
  • 62 просмотра
Пригласить эксперта
Ответы на вопрос 1
@Akina
Сетевой и системный админ, SQL-программист.
WITH 
cte AS (
    SELECT * , 
           ROW_NUMBER() OVER (ORDER BY `date` DESC, id DESC) rn, 
           DENSE_RANK() OVER (ORDER BY `date` DESC, id DESC) dr
    FROM `list` 
    WHERE user='1' 
    )
SELECT *
FROM cte
WHERE dr <= (
    SELECT dr
    FROM cte
    WHERE rn = 25
    )

Версия сервера: 5.6.51 - MySQL Community Server (GPL)

SELECT *
FROM `list`
WHERE user='1' 
  AND `date` >= (
    SELECT `date`
    FROM 'list'
    WHERE user='1' 
    ORDER BY `date` DESC, id DESC LIMIT 24, 1
)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы