2016-11-23 53 views
2

我正在構建Laravel 5.2應用程序。我有一個本地SQL查詢需要轉換爲查詢生成器表單,我的意思是,在Laravel查詢生成器中進行SQL查詢的等效操作。基本上,我面臨一個問題,當我試圖翻譯FORCE INDEX的捧場命令,這是原生SQL查詢:FORCE INDEX for Laravel查詢生成器的等效加入

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 ::原始( '表2爲T2 FORCE INDEX(idx_table2)'),...)' –