Php 在3个表上选择2个计数laravel
我有3个表(机构、员工、居民),我想在一次查询中获得机构的名称以及每个机构的居民和员工人数。但我不知道这是否可能 我试过这个: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
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中的查询得到了相同的结果,我不确定我的方法是否正确。