2017-06-17 4 views
-1

は、私は、クエリ持って、 私を助けてください:割引DESC限界によって結果ORDER AS(のid DESC LIMIT 20 BY製品ORDER SELECT * FROM)から SELECT *を14laravelにクエリビルダを使用してサブクエリから選択する方法5

ので、laravel 5のクエリビルダに変換する方法。 tks!

+0

は、[this](https://stackoverflow.com/questions/24823915/how-to-select-from-subquery-using-laravel-query-builder)でご覧になれます。 – molagbal

+0

tks guy、私はそれをした –

答えて

0

ような何か試してみてください:

製品:: ORDERBY( 'ID'、 'DESC') - >テイク(20) - > [並べ替え( '割引'、 'DESC') - >テイク(14) - を> get();

+0

tks男、私はそれを試してみましたが、結果はorderBy( '​​割引')ではありません。それは14のレコードorderby( 'id'、 'desc')を与えました。あなたは他に何か作っていますか? –

+0

あなたは以下を使用できます: $ q = Products :: orderBy( '​​id'、 'desc') - > take(20) - > get(); それ以降 $ test- $ q-> sortByDesc( 'nome') - > take(14); これが動作するかどうかを確認してください – itepifanio

0

クエリビルダを使用してDBをインポート(使用)すると、必要な結果をビルドして取得できます。

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文を作成しています。

表示する列を選択()します。

orderBy($ column、$ direction)ここで$ columnは注文したい列の名前で、$ directionはorder、descまたはascです。

limit($ limit)は結果セットに$ limit itemsのみを返します。

toSql()は、現在のQueryBuilder SQL文を文字列として返します。

get()は、コレクション内のデータを返します。

また、不足しているディスカウント注文で追加されました。

+0

答えにいくつかのコンテキストを追加してください。ちょうどコードだけで良い答えが得られません。 –

+0

私はあなたが "ORDER BY discount DESC" –

関連する問題