Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.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 加入数据库并计数_Php_Mysql_Laravel_Laravel 4_Eloquent - Fatal编程技术网

Php 加入数据库并计数

Php 加入数据库并计数,php,mysql,laravel,laravel-4,eloquent,Php,Mysql,Laravel,Laravel 4,Eloquent,我试着列出关于一个表的信息,其中一个信息是一个用户有多少辆车。我有两个数据库,一个是用户,另一个是汽车。表cars中有一列是owner,该列保存所有者的id。我想知道的是:如何列出所有用户以及每个用户拥有的汽车总数 $users = Users::all(); 这段代码返回一个包含所有用户的数组,我想要传递的是每个用户在同一$users变量上拥有的汽车总数。我该怎么做?有没有一种方法可以加入另一个表,计数然后返回,或者类似的方法 @编辑 我试过这样做,但不起作用: $users = Users

我试着列出关于一个表的信息,其中一个信息是一个用户有多少辆车。我有两个数据库,一个是
用户
,另一个是
汽车
。表
cars
中有一列是
owner
,该列保存所有者的
id
。我想知道的是:如何列出所有用户以及每个用户拥有的汽车总数

$users = Users::all();
这段代码返回一个包含所有用户的数组,我想要传递的是每个用户在同一
$users
变量上拥有的汽车总数。我该怎么做?有没有一种方法可以加入另一个表,计数然后返回,或者类似的方法

@编辑

我试过这样做,但不起作用:

$users = Users::join('cars', 'cars.owner', '=', 'users.id')->select(DB::raw('count(cars.car_id) as total'))->get();

您需要按状态分组。请执行以下操作:

select users.name, count(*) as counter from users 
join cars on ... group by users.name;
好的,这里有更详细的内容:

您必须将users表与cars表连接起来。你这样做,是的

然后,您必须从用户表中选择一个col和一个count(*)作为计数器

现在的诀窍是,根据用户表中的列“分组”。将所有双用户行与一行匹配,并计算一个用户拥有多少车

select语句是:

“选择users.id,count(*)作为计数器,从用户加入车上的车。所有者=users.id按用户分组。id”


就这些。。。希望对您有所帮助

您需要的国家小组:

select users.name, count(*) as counter from users 
join cars on ... group by users.name;
好的,这里有更详细的内容:

您必须将users表与cars表连接起来。你这样做,是的

然后,您必须从用户表中选择一个col和一个count(*)作为计数器

现在的诀窍是,根据用户表中的列“分组”。将所有双用户行与一行匹配,并计算一个用户拥有多少车

select语句是:

“选择users.id,count(*)作为计数器,从用户加入车上的车。所有者=users.id按用户分组。id”


就这些。。。希望能对你有所帮助

我想这会对你有所帮助

Users::with([
              'cars' => function($q){
                           $q->select([DB::raw("count(car_id) as total"), "car_id"])
                             ->groupBy('car_id');
                        }
           ])->get();

我想这会帮助你

Users::with([
              'cars' => function($q){
                           $q->select([DB::raw("count(car_id) as total"), "car_id"])
                             ->groupBy('car_id');
                        }
           ])->get();

您可以在raw中尝试此SQL查询。我试过了,效果很好

SELECT users.name as User_Name, COUNT(cars.user_id) as Car_Count
FROM users
LEFT JOIN cars
ON users.id=cars.user_id
GROUP BY users.id

您可以在raw中尝试此SQL查询。我试过了,效果很好

SELECT users.name as User_Name, COUNT(cars.user_id) as Car_Count
FROM users
LEFT JOIN cars
ON users.id=cars.user_id
GROUP BY users.id


但是
->count()
仅用于单个查询,我想了解每个用户。您是否有数据透视表设置?数据透视表设置的含义是什么?您是否尝试在视图中显示它们?(刀片)。我可以告诉你确切的语法。是的,我是。您的解决方案是什么?但是
->count()
仅用于单个查询,我想了解每个用户。您是否有数据透视表设置?数据透视表设置的含义是什么?您是否尝试在视图中显示它们?(刀片)。我可以告诉你确切的语法。是的,我是。你的解决方案是什么?@mralminty。看看@AliGajani-我会试试这个。Thanks@Tobi-
$users=users::select(DB::raw('count(*)as counter'))->join('cars','cars.owner','=','user.id')->groupBy('users.id')->get()-我尝试了这种方法,它只返回“counter”,我还需要其他列。我修复了这种方法:
$users=users::select('*',DB::raw('count(*)as counter'))->join('cars','cars.owner','=','user.id')->groupBy('users.id')->get()我现在有另一个问题。。。我需要知道有多少地方根据当前汽车的id销售这些汽车。我试过这样做:
$users=users::select('*',DB::raw('count(*)as counter'))->join('cars','cars.owner','=','user.id')->join('places','places.car','=','cars.id')->groupBy('users.id')->get()-它总是只返回
1
。@mralMight。看看@AliGajani-我会试试这个。Thanks@Tobi-
$users=users::select(DB::raw('count(*)as counter'))->join('cars','cars.owner','=','user.id')->groupBy('users.id')->get()-我尝试了这种方法,它只返回“counter”,我还需要其他列。我修复了这种方法:
$users=users::select('*',DB::raw('count(*)as counter'))->join('cars','cars.owner','=','user.id')->groupBy('users.id')->get()我现在有另一个问题。。。我需要知道有多少地方根据当前汽车的id销售这些汽车。我试过这样做:
$users=users::select('*',DB::raw('count(*)as counter'))->join('cars','cars.owner','=','user.id')->join('places','places.car','=','cars.id')->groupBy('users.id')->get()-并且它始终只返回
1
。这是一个已经制作好的,但是现在如何知道用户拥有的汽车的销量查看聊天(你在那里)-Tobi发布了一个查询,我在尝试转换成雄辩的时候真的很头疼。这是我做的,但是现在如何知道用户拥有的汽车的销量查看聊天(你在那里)-Tobi发布了一个查询,我在尝试转换为雄辩时感到非常头痛。是的,它有效,我知道,但我还有另一个问题:现在我在同一个查询中知道用户在多少地方卖车。例如,用户“John Stacey”有3辆车,假设每辆车都有一个品牌,每辆车在一个地方销售,那么我们有3个地方销售。差不多是这样。列表必须是这样的:用户X有N辆车在N个地方销售。是的,它是有效的,我知道,但我有另一个问题,那就是:现在我在同一个查询中知道有多少地方销售用户的车。例如,用户“John Stacey”有3辆车,假设每辆车都有一个品牌,每辆车在一个地方销售,那么我们有3个地方销售。差不多是这样。清单必须是这样的:用户X有N辆车在N个地方销售。