2016-11-23 72 views
2

私はLaravel 5.2アプリケーションを構築しています。私はクエリビルダフォームに変換する必要があるネイティブSQLクエリを持っています。つまり、LaravelクエリビルダのSQLクエリと同等のものを作っています。基本的に、私は問題に直面しています私はFORCE INDEX FORが JOINコマンドを変換しようとしたとき、これはネイティブSQLクエリです:だからLaravelクエリービルダーのFORCE INDEX FOR JOINと同等

SELECT some columns... 
    FROM table1 AS t1 
     LEFT JOIN table2 AS t2 
     FORCE INDEX FOR JOIN (idx_table2) 
      ON ((t1.messageid = t2.messageid) AND (t2.othercolumn = 1)) 
     WHERE something... 

、今では私が持っている:

$query= DB::table('table1 as t1') 
         ->leftJoin('table2 as t2', 't1.messageid', '=', 't2.messageid') 

だから、どうすればこの行を追加できますかFORCE INDEX FOR JOIN (idx_table2)

答えて

3

あなたはこの構文を使用することができます。

$query= DB::table('table1 as t1') 
        ->leftJoin(DB::raw('table2 AS t2 FORCE INDEX FOR JOIN (idx_table2)'), 't1.messageid', '=', 't2.messageid') 
+0

それは 'で十分です - '> leftJoin(DB ::生( 'T2力INDEX(idx_table2)AS表2')、...) –

関連する問題