mysql 一对多关联查询 合并结果group_concat()

$result= Db::table("comm_demand")->alias('b')
               ->field('GROUP_CONCAT(t.talent_name) as recommend_pers,b.id art_id,b.title,b.key_word_cn,b.money_min,b.money_max,b.cooperate_name,b.date_start,b.date_end,b.status,any_value(o.area)')
               ->page($page,'5')
               ->where(function ($query) use ($where2) {
                   $query->where($where2);
               })
               ->join('comm_field e','b.field=e.id','LEFT')
               ->join('comm_account2_organize o','o.uid=b.uid','LEFT')
               ->join('comm_demand_talent t','t.demand_id=b.id','LEFT')
               ->group('b.id')
               ->order('b.id desc')
               ->select();

如果报如下错误
Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre
解决方法
MySQL有any_value(field)函数,他主要的作用就是抑制ONLY_FULL_GROUP_BY值被拒绝
例如上面代码any_value(o.area)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容