且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

子查询语句的thinkphp实现

更新时间:2022-08-22 11:04:25

语句

SELECT a.id as item_id,a.name as item_name,a.intro as item_intro,b.id,b.money FROM sh_incentive_item a left join ( SELECT * FROM `sh_incentive` WHERE ( `agent_id` = 3 ) AND ( `year` = 2016 ) AND ( `month` = 1 ) ) b on a.id = b.item_id;

 

如何实现

SELECT * FROM `sh_incentive` WHERE ( `agent_id` = 3 ) AND ( `year` = 2016 ) AND ( `month` = 1 );

 

子查询语句的thinkphp实现
$incentiveModel = M('Incentive');
        $useYear = date('Y',strtotime('next month'));
        $useMonth = date('m',strtotime('next month'));
        $where['agent_id'] = $this->agent_id;
        $where['year'] = $useYear;
        $where['month'] = $useMonth;
        // 子查询
        $subQuery = $incentiveModel->where($where)->select(false);
子查询语句的thinkphp实现

 

整体

子查询语句的thinkphp实现
   // 获取当前代理商 本年 本月的设置
        $incentiveItemModel = M('Incentive_item');
        $incentiveModel = M('Incentive');
        $useYear = date('Y',strtotime('next month'));
        $useMonth = date('m',strtotime('next month'));
        $where['agent_id'] = $this->agent_id;
        $where['year'] = $useYear;
        $where['month'] = $useMonth;
        // 子查询
        $subQuery = $incentiveModel->where($where)->select(false);
        $list = $incentiveItemModel->table('sh_incentive_item a')->join('left join '.$subQuery.' b on a.id = b.item_id')->field('a.id as item_id,a.name as item_name,a.intro as item_intro,b.id,b.money')->select();