Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Добрый день уважаемые.
Всю голову сломал, не могу составить нижеуказанный запрос на Laravel Query Builder.
Помогите пожалуйста.
SELECT products.title, products.price, x.sales
FROM products
INNER JOIN
(
SELECT product_id,
MAX(sales) AS sales
FROM offers
GROUP BY product_id
) x
ON x.product_id = products.id
ORDER BY x.sales DESC LIMIT 20
Не в сети
Не в сети
Пробовал так :
$populars = DB::table ('products')
->select( DB::table ('offers')
->join ('offers.product_id', '=', 'products.id')
->select ('product_id')
->max ('sales')
->groupBy ('offers.product_id')
->get()
)
->orderBy ('offers.sales', 'desc')
->take(20)
->get();
return $populars;
но выдаёт ошибку :
SQLSTATE[42000]: Syntax error or access violation: 1049 Unknown database 'offers' (SQL: select max(`sales`) as aggregate from `offers` inner join `offers`.`product_id` on `=` = `products`.`id`)
за ответ спасибо, но непонятно где и к чему прицеплять данное замыкание ? )
ниже рабочий пример, он выполняет требуемую задачу, но это всё равно (почти) чистый SQL, а надо использовать, именно КОНСТРУКТОР ЗАПРОСОВ ФРЭЙМВОРКА
$results = DB::select ( DB::raw ( "SELECT products.title, products.price, x.sales
FROM products
INNER JOIN
(
SELECT product_id,
MAX(sales) AS sales
FROM offers
GROUP BY product_id
) x
ON x.product_id = products.id
ORDER BY x.sales DESC LIMIT 20" ) );
Изменено laravel_junior (15.04.2019 20:36:44)
Не в сети
Не в сети
Не в сети
'populars' => Product::join ('offers', 'products.id', '=', 'offers.product_id')
->orderBy ('offers.sales', 'desc')
->unique ('title')
->take (20)
->get()
Коллекции, решают данную задачу.
А тебе видимо проще написать 20 строк говна, переходящего на личности, чем написать несколько строк кода !?.
Типичный подход выскочки-дилетанта ).
PROFESSION DE FUFLO.
Не в сети
Страницы 1