【问题标题】:Laravel selectRaw with joined table data带有连接表数据的 Laravel selectRaw
【发布时间】:2017-04-19 06:03:53
【问题描述】:

我正在使用以下内容对总列求和:

$hive_count = Hive::where('active','true')
                      ->groupBy('hive_type_id')
                      ->selectRaw('sum(total) as sum, hive_type_id')
                      ->pluck('sum','hive_type_id');

但不是使用 hive_type_id 作为数组键,我想从 hive_types 表中访问 hive_type 名称(列“名称”)。我试过 hive_type_id.name 但这不起作用。

模型:Hive 和 HiveType

感谢您的帮助。

【问题讨论】:

  • 请将您的模型添加到 OP。
  • 已添加,Hive 和 HiveType
  • 你必须添加每一个的列和关系的类型。

标签: php mysql laravel laravel-5


【解决方案1】:

我想从 hive_types 表中访问 hive_type 名称(“名称”列)。

您必须在查询中加入表hive_types,这样您才能访问name

$hive_count = DB::table('hives')
                  ->where('active','true')
                  ->join('hive_types', 'hives.hive_type_id', '=', 'hive_types.id')
                  ->groupBy('hive_type_id','hive_types.name')
                  ->selectRaw('sum(total) as sum, hive_types.name as name')
                  ->pluck('sum','name');

【讨论】:

  • 我需要原始查询中的 hive_type 名称,以便可以将其用作数组键。我不明白你的答案是如何实现的?
  • 感谢您的回答,我收到以下错误:Grouping error: 7 ERROR: column "hive_types.name" must appear in the GROUP BY clause or be used in an aggregate function
猜你喜欢
  • 2021-10-24
  • 2021-05-26
  • 2016-03-28
  • 1970-01-01
  • 2017-04-11
  • 2018-04-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多