想要个这种效果的sql查询该怎么写啊



我用遍历的方法得到的上面的结果,如果用原生sql该怎么写,谢谢了

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
最佳答案

第一,不要在循环里调用查询操作,会产生N+1的问题,相当影响性能;

第二,命名最好是规范一些,$jiaoshi,$j,$jg一点都不见名思义;

第三,关于你提到的需求,一个模型一对多就出来了。

//一对多+解决N+1的问题
$status = ClassRoom::with("student")->where("查询条件")->get();
2年前 评论
小李世界 2年前
讨论数量: 8

为啥要写sql呢,一对多关系ORM with一下就出来了,而且你这数据类型好像有点问题,img下面再套img,直接数组就可以了吧?

2年前 评论
chowjiawei 2年前

你用 ORM 写,然后打印 SQL 语句。

2年前 评论
SELECT a.id, a.realname,a.addtime (SELECT group_concat( b.img ) FROM jg b WHERE b.jid = a.id) AS "img"  FROM j a WHERE a.id IN(1,2);

需要在遍历explode分割下,有大佬给优化下吗

2年前 评论
Nymph (楼主) 2年前
wanzi (作者) 2年前
yaoxs 2年前
//以下代码可以实现你的需求

//查询
表子::with(['img' =>function($q){
        $q->field('pid,img');
    }])->where([])->field('id,readname,addtime')->get();

+

//模型
public function img(){
    return $this->hasMany($this,'pid','id');
}

那么考考大家: 此时如果需要关联里面只查询5条记录 要如何实现呢? 哈哈哈 :see_no_evil:

2年前 评论
飞飞鱼 2年前

第一,不要在循环里调用查询操作,会产生N+1的问题,相当影响性能;

第二,命名最好是规范一些,$jiaoshi,$j,$jg一点都不见名思义;

第三,关于你提到的需求,一个模型一对多就出来了。

//一对多+解决N+1的问题
$status = ClassRoom::with("student")->where("查询条件")->get();
2年前 评论
小李世界 2年前

看这语法应该是TP框架吧

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!