я хочу получить 15 моих продуктов из моей mysql базы данных, в которой больше всего продается
это мой запрос:
SELECT *, products.name, ( SELECT COUNT(orders.product_id)
FROM orders
WHERE products.id = orders.product_id
) AS saleCount
FROM products
GROUP BY products.name
ORDER BY saleCount DESC
LIMIT 15
я использую запрос в laravel, как это :
Product::select('*')
->selectRaw(
'(select COUNT(orders.product_id)
FROM orders
WHERE products.id = orders.product_id) as saleCount'
)
->groupBy('products.id')
->orderBy('saleCount', 'DESC')
->limit(15)
->get();
Но я получил эту ошибку:
SQLSTATE [42000]: синтаксическая ошибка или нарушение прав доступа: 1055 'bigg.products.name' отсутствует в GROUP BY (SQL: выберите *, (выберите COUNT (orders.product_id) ИЗ заказов WHERE products.id = orders.product_id) в качестве saleCount из products
, где products
. deleted_at
- группа с нулевым значением products
. id
заказ по saleCount
дес c предел 15)
Я не знаю, где я ошибся. Спасибо за вашу помощь