子查询语句的thinkphp实现

语句

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 );

 

$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);

 

整体

   // 获取当前代理商 本年 本月的设置
        $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();

 

posted @ 2015-12-04 15:16  TBHacker  阅读(3928)  评论(0编辑  收藏  举报