Я должен получить 20 последних товаров, заказанных по цене. Я использую этот запрос.MySQL получить последние 20 товаров по цене
SELECT * FROM products ORDER BY created_at DESC, price ASC LIMIT 20
Я должен получить 20 последних товаров, заказанных по цене. Я использую этот запрос.MySQL получить последние 20 товаров по цене
SELECT * FROM products ORDER BY created_at DESC, price ASC LIMIT 20
и можно попробовать автообъединение
SELECT p1.* FROM products AS p1
INNER JOIN
(SELECT id
FROM products
ORDER BY created_at DESC LIMIT 20) AS p2
ON p1.id = p2.id
ORDER BY p1.price ASC
Я не уверен, о присоединении к временным таблицам в Laravel запроса-строитель. По крайней мере, вы можете сделать это необработанным способом:
$results = DB::select(DB::raw("
SELECT p1.* FROM products AS p1
INNER JOIN
(SELECT id
FROM products
ORDER BY created_at DESC LIMIT 20) AS p2
ON p1.id = p2.id
ORDER BY p1.price ASC
"));
Будет работать, но не думаете ли вы, что это снизит производительность? –
Я получаю эту ошибку. Ошибка синтаксиса или нарушение прав доступа: 1235 Эта версия MySQL еще не поддерживает «Подзапрос LIMIT & IN/ALL/ANY/SOME» –
ответ обновлен. – M0rtiis
Ваш запрос выглядит хорошо. Вы получаете какую-либо ошибку? –
Я не получаю правильных результатов. это просто упорядочение по времени не по цене –
Его заказывают их прежде всего по времени, а затем по цене. Измените порядок 'created_at' и' price' – amza