2016-11-15 6 views
0

私を助けてください。PostgresはLaravel QueryBuilderでWITHを使用します

は、私は生のSQL私はLaravel QueryBuilderを使用して、それを書くことができますどのように

WITH collections AS (
    SELECT 
     ... 
    FROM 
     ... 
) 
SELECT 
    ... 
FROM collections c1 
LEFT JOIN collections c2 
    ... 

を持っていますか?

+1

Laravel QueryBuilderは 'WITH'構文をサポートしていません。 2つのオプションがあります: 'WITH'を使わないでクエリを書き直すか、生のSQLクエリを受け入れるDB :: select()を使います。 – AlexM

答えて

0

Laravelのクエリビルダ(https://laravel.com/docs/5.3/queries#raw-expressions)のRAWメソッドを使用できます。潜在的なSQLインジェクションの抜け穴に気をつけてください。

+0

今私はこれをやっている: $ queryResult = DB :: select( " コレクションあり( SELECT .....));"; –

+0

作成したクエリ文全体を投稿できますか? – Ronald

+0

'$ QueryResultでは= DB :: はtcm.shop_id SELECT(AS「(コレクションで を選択し、... TCM AS template_collection_menu FROM LEFTがtc.id = tcm.template_collection_id WHERE tcm.shop_idでオンTC AS template_collectionを登録しよう(:mainShopIdは、:currentShopId)tcm.position ASC BY ORDER)はshop_idとして COALESCE(c2.shop_id、c1.shop_id)を選択 、...コレクションFROM がLEFTのコレクションをJOIN C1 C2 ON c2.template_collection_id = C1 .template_collection_id AND c1.shop_id =:mainShopId AND c2.shop_id =:currentShopId WHERE c1.shop_id =:mainShopId "、['mainShopId' => $ mainShopId、...]) ; ' –

関連する問題