Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.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 在3个表上选择2个计数laravel_Php_Mysql_Laravel 5 - Fatal编程技术网

Php 在3个表上选择2个计数laravel

Php 在3个表上选择2个计数laravel,php,mysql,laravel-5,Php,Mysql,Laravel 5,我有3个表(机构、员工、居民),我想在一次查询中获得机构的名称以及每个机构的居民和员工人数。但我不知道这是否可能 我试过这个: DB::table('etablissements') ->select(array('etablissements.nom', DB::raw('COUNT(residents.id) as nbResidents'), DB::raw('COUNT(personnels.id) as nbPersonnels'))) ->join

我有3个表(机构、员工、居民),我想在一次查询中获得机构的名称以及每个机构的居民和员工人数。但我不知道这是否可能

我试过这个:

DB::table('etablissements')
  ->select(array('etablissements.nom',
    DB::raw('COUNT(residents.id) as nbResidents'),
    DB::raw('COUNT(personnels.id) as nbPersonnels')))
  ->join('residents','etablissements.id','=','residents.etablissement_id')
  ->join('personnels','etablissements.id','=','personnels.etablissement_id')
  ->groupBy('etablissements.nom')->get();
但结果并不好。你能帮我吗

我想要一个包含所有机构名称的数组,以及每个机构的员工和附属居民数量

在这里你可以看到我得到了什么,但数字是错误的:


没有具有相同名称的机构,结果与id相同。我在SQL中的查询得到了相同的结果,我不确定我的方法是否正确。 如果我选择第一个机构,我应该有28名居民和36名员工

解决方案:
我忘了在每次计数后加上DISTINCT。

请具体说明,您希望得到什么样的结果?您是否尝试将SQL查询直接写入数据库以匹配结果?您可能有同名的机构。尝试按机构ID分组。没有具有相同名称的机构,结果与ID相同。我在SQL中的查询得到了相同的结果,我不确定我的方法是否正确。