thinkPHP简单实现多个子查询语句的方法
发布时间:2020-12-14 14:06:56 所属栏目:大数据 来源:网络整理
导读:本篇章节讲解thinkPHP简单实现多个子查询语句的方法。供大家参考研究具体如下: sql语句博大精深 理解好sql语句,就能用好thinkphp等框架中的数据库操作 原sql: 这里面有两个子查询语句,其实子查询语句也是表,只不过是存在内存中罢了。 thinkph
本篇章节讲解thinkPHP简单实现多个子查询语句的方法。分享给大家供大家参考,具体如下: sql语句博大精深 理解好sql语句,就能用好thinkphp等框架中的数据库操作 原sql:这里面有两个子查询语句,其实子查询语句也是表,只不过是存在内存中罢了。 thinkphp实现:assign('useYear',$useYear);
$useMonth = date('m',strtotime('last month'));
$this->assign('useMonth',$useMonth);
// 获取上一月人员的奖金金额
// 子查询1
$whereSub1['a.agent_id'] = $this->agent_id;
$whereSub1['a.status'] = 1;
$whereSub1['c.year'] = $useYear;
$whereSub1['c.month'] = $useMonth;
$subQuery1 = M()->table('sh_opener a')->join('sh_opener_bonus b on a.id = b.opener_id')->join('sh_incentive c on b.incentive_id = c.id')->where($whereSub1)->group('a.id,c.month')->field('a.id,c.month')->select(false);
// 子查询2
$whereSub2['a.agent_id'] = $this->agent_id;
$whereSub2['a.year'] = $useYear;
$whereSub2['a.month'] = $useMonth;
$subQuery2 = M()->table('sh_opener_bonus_payment a')->where($whereSub2)->field('a.id as payment_id,a.trode_number')->select(false);
$list = M()->table($subQuery1.' a')->join($subQuery2.' b on a.id = b.opener_id')->select();
$this->assign('list',$list);
其实thinkphp框架对sql的封装,最终还是要拼凑成sql语句。 更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》、《》、《》及《》。 希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |