簡體   English   中英

如何在Laravel的Leftjoin中使用Join?

[英]How Can I Use Join In The Leftjoin With Laravel?

我對laravel中的leftjoin和join有一個疑問,我想將以下示例重寫為laravel,我該怎么做?

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。

要進行這種復雜的查詢,您可以使用RAW EXPRESSIONS例如:

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

原始表達

有時您可能需要在查詢中使用原始表達式。 這些表達式將作為字符串注入查詢中,因此請注意不要創建任何SQL注入點! 創建原始表達式。

參考

這樣的地圖,

->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();

根據您的要求映射此查詢,它應該可以工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM