2017-06-17 63 views
-1

請幫幫我, 我有查詢: SELECT * FROM(SELECT * FROM產品ORDER BY ID DESC LIMIT 20),結果ORDER BY折扣DESC LIMIT 14如何從子查詢中laravel使用查詢生成器中選擇5

那麼,如何在laravel 5中轉換成查詢生成器。 tks!

+0

看看[this](https://stackoverflow.com/questions/24823915/how-to-select-from-subquery-using-laravel-query-builder),可能有幫助。 – molagbal

+0

tks的傢伙,我做到了 –

回答

0

試着這麼做:

產品::排序依據( '身份證', '遞減') - >取(20) - >排序依據( '折扣', '降序') - >取(14) - >得到();

+0

tks的傢伙,我試過了,但結果不orderBy('折扣')。它給出了14條記錄('id','desc')。你有其他的製作嗎? –

+0

您可以使用: $ q = Products :: orderBy('id','desc') - > take(20) - > get(); 之後 $ test = $ q-> sortByDesc('nome') - > take(14); 看看這個作品 – itepifanio

0

使用查詢構建器和導入(使用)數據庫,您可以構建和獲取所需的結果。

use DB; 

$result = DB::table(
    DB::raw("(" . 
     DB::table('products') 
      ->select('*') 
      ->orderBy('id', 'desc') 
      ->limit(20) 
      ->toSql() 
     . ") as result" 
    ) 
) 
->select('*') 
->orderBy('discount', 'desc') 
->limit(14) 
->get(); 

table()選擇要查詢的表。在這種情況下,我們正在構建一個單獨的SQL語句來獲取表。

select()您希望看到的列。

orderBy($ column,$ direction)其中$ column是您要訂購的列的名稱,$ direction是訂單,desc或asc。

limit($ limit)只返回$ limit項目到結果集。

toSql()以字符串形式返回當前QueryBuilder SQL語句。

get()返回集合中的數據。

此外在缺少的折扣順序中添加。

+0

請添加一些上下文到你的答案。只是代碼通常不會爲好的答案 –

+0

我認爲你錯過了「ORDER BY折扣DESC」 –