您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

mysql 一对多数据表 join 查询后结果集的处理

bubuko 2022/1/25 20:09:18 mysql 字数 3336 阅读 991 来源 http://www.bubuko.com/infolist-5-1.html

一、问题 在实际项目中,经常遇到一对多数据表连表【left join】查询的情况,从数据表查出来的数据集会默认填充主表的记录,如下图: 其中分类UI下面有两个小类别动画、场景,分类CG下面有两个小类别动作、UI,这样的结果集往往不是我们需要的,我们需要的更过时以下形式的结果集: 二、参考方法 fun ...

一、问题

在实际项目中,经常遇到一对多数据表连表【left join】查询的情况,从数据表查出来的数据集会默认填充主表的记录,如下图:

技术分享图片

其中分类UI下面有两个小类别动画、场景,分类CG下面有两个小类别动作、UI,这样的结果集往往不是我们需要的,我们需要的更过时以下形式的结果集:

技术分享图片

二、参考方法

function fun_data_format($data = []){
        $ret = [];
        foreach ($data as $k => $v) {
            if (!isset($data[$k][‘mark‘])) {
                // 提取公共参数【字段】
                $ret[$k] = [
                    ‘catg_id‘ => $v[‘catg_id‘],
                    ‘catg_name‘ => $v[‘catg_name‘],
                ];
                foreach ($data as $kk => $vv) {
                    if ($v[‘catg_id‘] == $vv[‘catg_id‘]) {
                        $ret[$k][‘nodes‘][] = $vv[‘name‘];
                        // 标记已处理
                        $data[$kk][‘mark‘] = true;
                    }
                }
            }
        }
        $ret = array_values($ret);
        return $ret;
}

 

mysql 一对多数据表 join 查询后结果集的处理

原文:https://www.cnblogs.com/whx-blogs/p/12382034.html


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶