Я пытаюсь получить последние 10 сообщений из ASC, упорядоченного по таблице posts, но последний левый соединенный запрос ничего не возвращает.
Базовый: извлекает результаты, упорядоченные по убыванию
SELECT
p.post, p.id_post, u.name
FROM
posts p
LEFT JOIN
users u ON u.id_user = p.id_user
WHERE
p.id_user = 4
ORDER BY
p.date DESC
LIMIT 10
Заказал ASC: вообще не работает:
SELECT
num.*
FROM
(SELECT
p.post, p.id_post, u.name
FROM
posts p
LEFT JOIN
users u ON u.id_user = p.id_user
WHERE
p.id_user = 4
ORDER BY
p.date DESC
LIMIT 10) num
ORDER BY
p.date ASC
Что я делаю неправильно?
В своих переменных php я использую $row['id_post']$row['post']$row['name']. Я не хочу использовать array_reverse(), просто sql






Вам нужно вернуть дату в подзапросе:
SELECT pu.post, pu.id_post, pu.name
FROM (SELECT p.*, u.name
FROM posts p LEFT JOIN
users u
ON u.id_user = p.id_user
WHERE p.id_user = 4
ORDER BY p.date DESC
LIMIT 10
) pu
ORDER BY pu.date ASC;
Ваш второй запрос должен был вернуть сообщение об ошибке о том, что date не распознается как столбец. Вы должны записывать сообщения об ошибках и чтение, если хотите написать эффективное приложение.
Да, второй запрос вернул ошибку, я настроил его с помощью
die();. Ваш ответ решил мой вопрос, спасибо !.