Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.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
Mysql 如何在Laravel 4中使用Distinct和Join_Mysql_Sql_Laravel_Laravel 4 - Fatal编程技术网

Mysql 如何在Laravel 4中使用Distinct和Join

Mysql 如何在Laravel 4中使用Distinct和Join,mysql,sql,laravel,laravel-4,Mysql,Sql,Laravel,Laravel 4,我似乎无法让sql中内置的查询与Laravel4一起工作 它应该输出100行,但是我一直得到850行,并且不知道如何在Laravel4中实现不同的工作 //I am trying to achieve a result set of 100, which is easily done using sql: Result 100 rows SELECT DISTINCT a.name, a.brand FROM table1 a INNER JOIN table2 b ON a.name=b.na

我似乎无法让sql中内置的查询与Laravel4一起工作

它应该输出100行,但是我一直得到850行,并且不知道如何在Laravel4中实现不同的工作

//I am trying to achieve a result set of 100, which is easily done using sql: Result 100 rows
SELECT DISTINCT a.name, a.brand FROM table1 a
INNER JOIN table2 b ON a.name=b.name
我尝试了以下方法,但似乎没有一个应用了不同的方法

//But when trying to use eloquent or query builder, the distinct does not get applied: Results 850 rows
DB::table('table1')
->join('table2', 'table1.name', '=', 'table2.name')
->select(DB::raw('DISTINCT `table1`.`name`'), 'table1.brand')
->count();

//results 850 rows
table1::distinct()
->join('table2', 'table1.name', '=', 'table2.name')
->select(array('table1.name','table1.brand'))
->orderBy('table1.name')
->count();

我不知道distinct是否可以作为第一个参数调用。每当我做不同的选择时,我都会按如下顺序排列我的雄辩:Model::selectcolumn->distinct->get;这通常效果很好。作为评论发布,因为我不知道这是否回答了您的问题。您好,谢谢您的回复,在搞乱之后,我发现count函数在同时使用distinct和join时返回了错误的值。我能够手动检查数据,发现它在工作,只是计数是基于没有明显的差异。不确定那里发生了什么,但我已经通过将sql发布到日志文件使其工作,这样我就可以看到它正在查询什么,并使其工作,这很好。我注意到->count函数有时确实表现得很奇怪,这就是为什么我更喜欢使用count$results,或者任何你称之为php变量的东西。它只是计算数组中的元素数。干杯