• 子查询语句的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();
  • 相关阅读:
    BZOJ1430小猴打架——prufer序列
    [集训队作业2018]蜀道难——TopTree+贪心+树链剖分+链分治+树形DP
    BZOJ5063旅游——非旋转treap
    bzoj 4570 妖怪
    Luogu 1452 Beauty Contest
    bzoj 1337 最小圆覆盖
    bzoj 1007 水平可见直线
    Luogu 4724 三维凸包
    bzoj 4827 礼物
    hdu 4348 To the moon
  • 原文地址:https://www.cnblogs.com/jiqing9006/p/5019383.html
Copyright © 2020-2023  润新知