我有2个不同的表“anakelangs”和“absen”我想从这两个表中检索数据,并显示在某种列表结果表中
这里的条件是:从anakelangs表中获取名称(此表中还有其他列),并从“kehadiran”表中获取“kehadiran”总数。在汇总表中显示它们。
阿纳卡朗人桌
| ID| nama|
| --|--|
| 1 |阿比耶尤|
| 2 |Ziggy|
餐桌缺席
| id_anak|全国运动|
| --|--|
| 1 |hadir|
| 2 |hadir|
| 1 |季代格哈迪尔|
| 2 |hadir|
| 1 |hadir|
| 2 |hadir|
表列表结果
| nama|凯哈迪兰|
| --|--|
| 阿比耶尤|Hadir = 2,tidak Hadir = 1|
| ziggy3| Hadir = 3,tidak Hadir = 0|
我在控制器中尝试过类似的东西
$rekapabsen = DB::table('anakelangs')
->join('absen', 'anakelangs.id', '=', 'absen.id_anak')
->select('anakelangs.id as id', 'anakelangs.nama_anak as name',
DB::raw("count(absen.id_anak) as count"))
->groupBy('anakelangs.id')
->get();
字符串
但它的结局是:
SQLSTATE[42000]:返回错误或访问冲突:1055 'cakarelang.anakelangs.nama_anak'不在GROUP BY中
任何帮助都将不胜感激。谢谢你的时间。
2条答案
按热度按时间mkh04yzy1#
您遇到的错误通常是由于使用GROUP BY时的MySQL严格模式而发生的。
就像这样:
字符串
还建议:保持你的表在英语作为一个最佳做法
41ik7eoe2#
所有非聚合列必须是
GROUP BY
子句的一部分,这意味着您必须将anakelangs.nama_anak
添加到其中。