【问题标题】:I want to get the total number of contents of several columns from a table我想从一个表中获取几列的内容总数
【发布时间】:2020-07-23 03:12:17
【问题描述】:

在我的代码下面,但它出错了 在错误下方 完整性约束违规:1052 列 'id' 在组语句中不明确(SQL: select sum(d1 + d2 + d3 + d4 + d5) as total, responden., durasi. from respondeninner join durasi on responden.id = durasi.responden_id group by id)

在我的代码下面

$durasi = DB::table('responden')
                ->join('durasi', 'responden.id', '=', 'durasi.responden_id')
                ->select(DB::raw('sum(d1 + d2 + d3 + d4 + d5) as total'), 'responden.*', 'durasi.*')
                ->groupBy('id')
                ->get();

        return view('hasil', compact('durasi'));

希望有人帮我解决问题。谢谢

【问题讨论】:

标签: php mysql laravel


【解决方案1】:

在您按groupBy('id') 分组时的查询中,id 需要表别名。应该是responden.id

【讨论】:

  • @user11974734 很高兴我能提供帮助。如果这有助于您接受答案,我们将不胜感激,因为这将有助于提高我的声誉点数。
【解决方案2】:

当多个表共享一个列名时会发生这种情况,您必须在 group by 中的 id 之前提及表名,如下所示

$durasi = DB::table('responden')
            ->join('durasi', 'responden.id', '=', 'durasi.responden_id')
            ->select(DB::raw('sum(d1 + d2 + d3 + d4 + d5) as total'), 'responden.*', 'durasi.*')
            ->groupBy('responden.id')
            ->get();

    return view('hasil', compact('durasi'));

【讨论】:

    猜你喜欢
    • 2010-11-26
    • 1970-01-01
    • 2017-06-05
    • 1970-01-01
    • 2022-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多