2017-02-09 70 views
0

我有一個關於leftjoin的問題&加入laravel 我想將下面的示例重寫爲laravel,我該如何做到這一點?如何使用Laravel在Leftjoin中加入?

LEFT JOIN(advertsolution_f SF 
      JOIN function_d FD ON SF.fd_id = FD.fd_id 
      JOIN function_m FM ON FD.fm_id = FM.fm_id) 
ON SM.ads_id = SF.ads_id 

我試圖重寫它,但我認爲這不是一個好主意。

->leftJoin($SF,$SM.'.ads_id',$SF.'.ads_id') 
->leftjoin($FD,$SF.'.fd_id',$FD.'.fd_id') 
->leftjoin($FM,$FD.'.fm_id',$FM.'.fm_id') 

因爲我不知道如何將表格私人連接到$ SF。

+0

你面對什麼樣的錯誤,你可以張貼錯誤 – rahulsm

+0

當我的條件還不夠準確,CMD就會崩潰 – JudeChih

回答

0

地圖這樣,

->leftJoin($SF,$SM.'.ads_id','=',$SF.'.ads_id') 
->leftjoin($FD,$SF.'.fd_id','=',$FD.'.fd_id') 
->leftjoin($FM,$FD.'.fm_id','=',$FM.'.fm_id') 

你缺少=查詢跡象。

編輯

比如你給出我寫代其查詢,你只需要與原來的字段和表映射,

DB::table('a') 
->leftJoin("b","b.a_id","=","a.id") 
->leftJoin("c","c.b_id","=","b.id") 
->leftJoin("d","d.bd_id","=","b.bdid") 
->get(); 

地圖這個查詢,按您的要求, 它應該工作。

+0

THX,但它的工作,而這一點,我只是覺得上期運用3 leftjoin – JudeChih

+0

這就是數據庫邏輯正確奇怪嗎?我需要決定 – rahulsm

+0

爲例: 我有4個表a b c d,表a是我的礦表,表b是左連接表a ,然後是表c和表d連接表b。 – JudeChih

0

用於製造這種複雜的查詢,你可以使用RAW EXPRESSIONS像:

$users = DB::table('users') 
->select(DB::raw('count(*) as user_count, status')) 
->where('status', '<>', 1) 
->get(); 

原始表達式

有時你可能需要在查詢中使用原始的表達。這些表達式將作爲字符串注入查詢中,因此請小心不要創建任何SQL注入點!創建一個原始表達式。

Reference

相關問題