3 votes

Equivalent de FORCE INDEX FOR JOIN dans le constructeur de requêtes Laravel

Je suis en train de construire une application Laravel 5.2. J'ai une requête SQL native qui doit être traduite dans le formulaire du constructeur de requêtes, c'est-à-dire faire l'équivalent de la requête SQL dans le constructeur de requêtes de Laravel. En fait, je rencontre un problème lorsque j'essaie de traduire la requête SQL native dans le formulaire du constructeur de requêtes Laravel. FORCER L'INDEX POUR LA JOINTURE il s'agit de la requête SQL native :

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... 

Je l'ai donc déjà fait :

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

Comment puis-je ajouter cette ligne ? FORCE INDEX FOR JOIN (idx_table2) ?

3voto

user2356664 Points 51

Vous pouvez utiliser cette syntaxe :

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X