thinkphp3中SQL语句的转换和count与group的冲突

原sql语句,

$sql="SELECT
            	count(*),
            	brand.`name` AS '品牌名称',
            	kb_package_goods.`name` '商品名称',
            	kb_package.price,
            	package_goods_id,
            	date_format(
            		from_unixtime(end_time),
                '%Y-%m-%d'
            
            	) AS days
            FROM
            	kb_package
            LEFT JOIN brand ON brand.id = kb_package.brand_id
            LEFT JOIN kb_package_goods ON package_goods_id = kb_package_goods.id
            WHERE
            	kb_package.brand_id IN (
            		SELECT DISTINCT
            			(brand_id)
            		FROM
            			kb_package
            	)
            AND kb_package.state = 0
            GROUP BY
            	kb_package.brand_id,
            	kb_package.package_goods_id"; 

转换后的形式,

$data = $m->limit($Page->firstRow.','.$Page->listRows)->join('LEFT JOIN brand ON brand.id = kb_package.brand_id')
        ->join('LEFT JOIN kb_package_goods ON package_goods_id = kb_package_goods.id')
        ->field('count(1) as mun,brand.name as ppname,kb_package_goods.name as goodname,kb_package.price as jiage, package_goods_id,date_format( from_unixtime(end_time), "%Y-%m-%d" ) as time')
        ->group('kb_package.brand_id, kb_package.package_goods_id')
        ->where($map)->select();

count时的子查询避免与group的冲突

$subQuery = $m->join('LEFT JOIN brand ON brand.id = kb_package.brand_id')
        ->join('LEFT JOIN kb_package_goods ON package_goods_id = kb_package_goods.id')
        ->field('count(1) as mun,brand.name as ppname,kb_package_goods.name as goodname,kb_package.price as jiage, package_goods_id,date_format( from_unixtime(end_time), "%Y-%m-%d" ) as time')
        ->group('kb_package.brand_id, kb_package.package_goods_id')->where($map)->select(false);
        $count = $m->table($subQuery . ' a')->count();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值