[英]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.