Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在Leftjoin中使用Join与Laravel?;_Php_Mysql_Laravel - Fatal编程技术网

Php 如何在Leftjoin中使用Join与Laravel?;

Php 如何在Leftjoin中使用Join与Laravel?;,php,mysql,laravel,Php,Mysql,Laravel,我有一个关于leftjoin和加入laravel的问题 我想将下面的示例重写到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 我试着这样重写,但我认为这不是一个好主意 ->leftJo

我有一个关于leftjoin和加入laravel的问题 我想将下面的示例重写到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。

要进行如此复杂的查询,您可以使用
原始表达式,如:

$users = DB::table('users')
->select(DB::raw('count(*) as user_count, status'))
->where('status', '<>', 1)
->get();
$users=DB::table('users'))
->选择(DB::raw('count(*)作为用户计数,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();
根据您的要求映射此查询,
它应该可以工作。

你面临什么错误,你能发布错误吗?当我的条件不够准确时,CMD将崩溃ethx,但如果没有它,它可以工作,我只是对使用三个LeftJoin感到奇怪,这是数据库逻辑,对吗?在哪里使用“内”和“左”,您需要为exlample确定:我有4个表a b c d,表a是我的表,表b leftjoin表a,然后是表c和表d join表b。或者告诉我,我是否映射您在问题中提到的核心查询,这意味着我将把所有的表名和字段名都当作静态的,不像你们在变量中使用的那个样?你们还有什么期望?