Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 Re: Laravel 5.x » Помогите составить запрос на Laravel Query Builder » 17.04.2019 09:28:56

'populars' => Product::join ('offers', 'products.id', '=', 'offers.product_id')
        ->orderBy ('offers.sales', 'desc')
        ->unique ('title')
        ->take (20)
        ->get()

Коллекции, решают данную задачу.

А тебе видимо проще написать 20 строк говна, переходящего на личности, чем написать несколько строк кода !?.

Типичный подход выскочки-дилетанта ).

PROFESSION DE FUFLO.

#2 Re: Laravel 5.x » Помогите составить запрос на Laravel Query Builder » 15.04.2019 20:26:45

Пробовал так :

$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" ) );

#3 Laravel 5.x » Помогите составить запрос на Laravel Query Builder » 15.04.2019 10:59:37

laravel_junior
Ответов: 5

Добрый день уважаемые.

Всю голову сломал, не могу составить нижеуказанный запрос на 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   

Подвал раздела