Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.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 联接查询返回laravel中的重复数据_Php_Mysql_Laravel - Fatal编程技术网

Php 联接查询返回laravel中的重复数据

Php 联接查询返回laravel中的重复数据,php,mysql,laravel,Php,Mysql,Laravel,我已经在directsales和clients表之间运行了一个基于客户端id的联接查询。 但是当我打印查询结果时,它会显示重复的数据 这是我的密码 public function readirectsalereport(Request $request) { $client_id=$request->client_id; $fromdate=$request->frmdate; $todate=$request->todate; $ds

我已经在directsales和clients表之间运行了一个基于客户端id的联接查询。 但是当我打印查询结果时,它会显示重复的数据

这是我的密码

public function readirectsalereport(Request $request)
{
    $client_id=$request->client_id;
    $fromdate=$request->frmdate;
    $todate=$request->todate;

        $dsale=DB::table('directsales')
            ->join('clients','directsales.client_id','=','clients.id')
            ->select('clients.client_name','clients.addr')
            ->where('directsales.client_id','=',$client_id)
            ->get();

            return $dsale;

}
这表明了这个结果

[{"client_name":"majed10","addr":"Uttara"},{"client_name":"majed10","addr":"Uttara"}]
使用不同的方法:

$dsale=DB::table('directsales')
            ->join('clients','directsales.client_id','=','clients.id')
            ->select('clients.client_name','clients.addr')
            ->where('directsales.client_id','=',$client_id)
            ->distinct()
            ->get();

Ref:

内部联接确实可以返回重复的记录。Laraval的函数distinct()应该可以帮助您解决这个问题。leftJoin('clients',function($join){如果,我想在这个查询中添加sum函数。我该怎么做?你可以在其中添加一个原始查询,但可能无法使用distinct。你可以尝试使用groupBy,它应该适合这个问题。我很感激这个答案!数据库部分中的Laravel文档在一个示例中只引用了distinct(),没有任何注释。