проблема в использовании агрегатных функций в laravel -7 - selectRaw () - PullRequest
0 голосов
/ 09 апреля 2020

я хочу получить 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)

Я не знаю, где я ошибся. Спасибо за вашу помощь

...