CI 框架多表关联查询

public function getCollectData($limit, $page, $search_user, $search_phone, $orderfield, $ordertype)
    {
        $this->db->select(‘a.id,a.mobile,a.is_del,a.register_ip,a.add_time,
        b.parent_id as master_id,
        ifnull(inv.award,0) as invite_moneys,
        ifnull(bro.price,0) as brokerage_moneys,
        ifnull(sha.read_price,0) as share_moneys,
        ifnull(sha.counts,0) as share_counts,
        (ifnull(inv.award,0)+ifnull(bro.price,0)+ifnull(sha.read_price,0)) as total_moneys‘);
        $this->db->from(self::$table_name . ‘ a‘);
        $this->db->join(‘ws_invitation b‘, ‘a.id = b.user_id‘, ‘left‘);
        $this->db->join(‘(SELECT sum(award) as award,user_id FROM ws_invitation_log GROUP BY user_id) as inv‘, ‘a.id = inv.user_id‘, ‘left‘);
        $this->db->join(‘(SELECT sum(price) as price,prentice_id FROM ws_brokerage_log GROUP BY user_id) as bro‘, ‘a.id = bro.prentice_id‘, ‘left‘);
        $this->db->join(‘(SELECT sum(read_number*read_price) as read_price,count(id) as counts,
        user_id FROM ws_share_record GROUP BY user_id) as sha‘, ‘a.id = sha.user_id‘, ‘left‘);
        $this->db->where([‘is_channel‘ => 0]);

        if ($search_user) {
            $this->db->where([‘a.id‘ => $search_user]);
        }
        if ($search_phone) {
            $this->db->like(‘a.mobile‘, $search_phone, ‘both‘);
        }
        if ($orderfield && $ordertype) {
            $this->db->order_by($orderfield . ‘ ‘ . $ordertype);
        } else {
            $this->db->order_by(‘a.id DESC‘);
        }
        $this->db->group_by(‘a.id‘);
        $this->db->limit($limit, $limit * ($page - 1));
        return $this->db->get()->result_array();
    }

原文地址:https://www.cnblogs.com/sgm4231/p/12092805.html

时间: 2024-11-01 10:08:17

CI 框架多表关联查询的相关文章

CI 多表关联查询

方法一:$this->db->query("sql  语句");     直接写sql语句 方法二: #多表关联查询 $data=$this->db->from('goods') ->join('shop','shop.shopid=goods.shopid') ->join('category','category.cid=goods.cid') ->join('locality','locality.lid=goods.lid') ->

RDIFramework.NET 中多表关联查询分页实例

RDIFramework.NET 中多表关联查询分页实例 RDIFramework.NET,基于.NET的快速信息化系统开发.整合框架,给用户和开发者最佳的.Net框架部署方案.该框架以SOA范式作为指导思想,作为异质系统整合与互操作性.分布式应用提供了可行的解决方案. 分页非常的常见,基本任何项目都会涉及到分页,这没什么好谈的,大多数我们分页对单表的分页比较多,对多表的分页我们可以通过视图来实现,当然还有其他的方式,在这儿,我以一个实例展示下使用我们的RDIFramework.NET来实现多表

EF模式下 多表关联查询结果作为数据源 gridview无法编辑的问题解决思路

之前做项目都习惯了使用SQL方便又快捷,但是近期领导要求使用对象实体的方式进行程序的开发 比较了多个ORM框架之后 决定还是采用微软自家的EF吧 .初次使用EF,没有什么经验 ,在实际使用过程中 遇到了一些问题,也折腾了好长时间... 前天在开发某个功能的时候 一个小兄弟 就发现 采用EF模式 在多表关联查询的结果作为数据源的情况下 gridview可以正常的显示 但是无法进行编辑,各种属性也都没问题,这可怎么办?百度之,有人说这是因为EF下gridview编辑都是依托于实体类的 ,多表关联的结

Hibernate-多表关联查询结果的处理方法

Hibernate多表查询结果处理 (2014-07-06 20:45:40) 转载▼ 标签: hibernate 多表查询 结果集处理 分类: Java 如果我们在Hibernate中需要查询多个表的不同字段,那么如何来获取Hibernate多表查询的结果呢?有两种方式: 1. 对各个字段分别转化成对应类型,如下: Java代码: Query q = session.createQuery(" select members, classInfo.className " + "

MySQL多表关联查询与存储过程

1.多表关联查询 --  **************关联查询(多表查询)**************** -- 需求:查询员工及其所在部门(显示员工姓名,部门名称) -- 1.1 交叉连接查询(不推荐.产生笛卡尔乘积现象:4 * 4=16,有些是重复记录) SELECT empName,deptName FROM employee,dept; -- 需求:查询员工及其所在部门(显示员工姓名,部门名称) -- 多表查询规则:1)确定查询哪些表   2)确定查询哪些字段   3)表与表之间连接条件

图解SQL多表关联查询

图解SQL多表关联查询 网上看了篇文章关于多表连接的,感觉很好,记录下来,以便日后自己学习  内连接 左连接 右连接 全外连接

Yii2中多表关联查询(join、joinwith) with是不执行sql的

Yii2中多表关联查询(join.joinwith) 我们用实例来说明这一部分 表结构 现在有客户表.订单表.图书表.作者表, 客户表Customer (id customer_name) 订单表Order (id order_name customer_id book_id) 图书表 (id book_name author_id) 作者表 (id author_name) 模型定义 下面是这4个个模型的定义,只写出其中的关联 Customer class Customer extends \

mark---[mysql多表关联查询的优化方法]

对于一个网站来说,数据库的结构至关重要.即要利于存储(入库不阻塞),又要利于查询(查询不锁表).网站数据库优化经验是一个积累的过程.下面就对多表关联查询的优化方法,举例说明. 现在社区分享类网站很火,就拿方维购物分享网站举例说明吧.也是对二次开发方维购物分享网站的一点总结,高手可以飞过. 购物分享的关键表有:分享表.图片表.文件表.评论表.标签表.分类表等. 围绕分享的表就么多,哇,那也不少啊.当我们查看一个图片的详细信息时,就要显示以上表里的信息.显示图片所属的分类.给图片打的标签.图片的评论

SQL两表关联查询&批量修改字段值

SQL关联查询&修改字段,正确范例如下: --批量修改报告单位名称&更新时间 --tt和tp两表关联查询,将符合条件的tt表中的principal字段更新到tp表的ruperson字段 merge into nhis34.t_publicplaces tp using standard.t_organization tt on (tt.orgcode = tp.r_orgcode and tp.create_time > '2015-05-07 00:00:00') when mat