任何一個可以幫助我獲得laravel連接查詢出來放像:Laravel 5+查詢生成器
LEFT JOIN table2 ON table2.field1 IN (table1.field1 , table1.field2)
這意味着,我想加入table2
用(價值的任何一個是,table1.field1
或table1.field2
)
任何一個可以幫助我獲得laravel連接查詢出來放像:Laravel 5+查詢生成器
LEFT JOIN table2 ON table2.field1 IN (table1.field1 , table1.field2)
這意味着,我想加入table2
用(價值的任何一個是,table1.field1
或table1.field2
)
LEFT JOIN table2 ON table2.field1 = table1.field2 OR table2.field1 = table1.field1
使用查詢生成器
$records = DB::table('table1')
->leftJoin('table2', function ($join) {
$join->on('table2.field1', '=', 'table1.field1')
->orOn('table2.field1' , '=', 'table1.field2');
})
->get();
在這裏閱讀更多:Laravel Joins
LEFT JOIN table2 ON table2.field1 IN (table1.field1 , table1.field2)
這是不正確的。正確的加入格式爲:
LEFT JOIN table2 ON table2.field1 ON table1.field1 = table1.field2
這是行不通的。我提到了一個大查詢的一部分,它工作正常。我想將它轉換成laravel查詢生成器格式 – user1197250
,您可以加入兩個列這樣。這有幫助!
$records = DB::table('table1 as t1')
->leftJoin('table2 as t2', function ($join) {
$join->on('t2.field1', '=', 't1.field1');
$join->orOn('t2.field1', '=', 't1.field2');
})->get();
看到hereAdvanced Join Clauses
如果我們在多個條件下使用兩個'on',那麼它會在這些條件下添加'和'。也就是說,輸出查詢將是,t2.field1 = t1.field1 AND t2.field1 = t1.field2。這不會滿足我的要求。 – user1197250
我想根據table1的兩列將table2與table1連接起來。任何一個列都有匹配的記錄,那麼它應該顯示。 – user1197250
@ user1197250請檢查更新的答案 – linktoahref
是的。這工作正常。謝謝...! – user1197250