【问题标题】:Laravel query goup by, multipe coulmn count with groupbyLaravel 查询分组依据,多列计数与分组依据
【发布时间】:2021-11-04 14:37:27
【问题描述】:

我有一个查询让我们看看,

DB::table('states')
    ->join('brands', 'brands.state_id', '=', 'states.state_id')
    ->join('cities', 'cities.state_id', '=', 'states.state_id')
    ->select(
        'state_name',
        DB::raw("(COUNT('cities.city_id')) as cities"),
        DB::raw("count('brands.brand_id') as brands")
    )
    ->groupBy('state_name')
    ->get();  

我想从states 表中获取state_name 并计算状态下的citiesbrands。但在这些查询中,问题是城市计数和品牌计数显示相同的结果。我该如何解决?

【问题讨论】:

  • 您的预期结果是什么?
  • 我的预期结果将显示 state_name 和 city--count & brand--count
  • 像这样:` [ { state_name:“阿拉巴马”,城市:574,品牌:5 },{ state_name:“阿肯色州”,城市:439,品牌:6 },{ state_name:“阿肯色州", 城市: 439, 品牌: 10 } ] `
  • 你的输出是什么?
  • 城市和品牌与城市:530 品牌:530 相同,但这不是正确答案。品牌有不同的价值

标签: mysql laravel join query-builder


【解决方案1】:

join(...(内连接)更改为leftJoin(...(左连接)。

【讨论】:

    猜你喜欢
    • 2021-07-04
    • 1970-01-01
    • 1970-01-01
    • 2014-04-21
    • 2022-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多