You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel关联表统计报错:查询帖子获赞数触发1055语法错误

解决Laravel关联统计获赞数的1055错误

错误原因

MySQL启用严格模式后,GROUP BY子句必须包含SELECT中所有非聚合字段。你的查询里同时选择了posts.id和posts.status,但仅按posts.id分组,违反了这一规则,因此触发1055语法错误。

解决方法

方案1:补全GROUP BY字段

将SELECT中的所有非聚合字段加入GROUP BY:

$data = Post::query()
    ->leftJoin('likes', 'posts.id', '=', 'likes.post_id')
    ->selectRaw('posts.id, posts.status, COUNT(likes.id) AS curtidas')
    ->groupBy('posts.id', 'posts.status')
    ->get();

方案2:使用Laravel自带的关联统计(推荐)

Laravel提供了withCount方法,无需手动写JOIN和GROUP BY,更简洁且避免错误:

// 基础用法,获赞数字段默认是likes_count
$data = Post::query()
    ->select('id', 'status')
    ->withCount('likes')
    ->get();

// 自定义获赞数字段名(对应你的curtidas)
$data = Post::query()
    ->select('id', 'status')
    ->withCount(['likes as curtidas'])
    ->get();

使用时直接通过$post->curtidas访问对应帖子的获赞数即可。

内容的提问来源于stack exchange,提问作者gobs

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 07:22:33