如何将此SQL查询转换为cakephp格式?

时间:2018-06-28 08:08:02

标签: cakephp cakephp-2.0

任何人都可以帮助将该查询转换为cakephp格式,因为我是cakephp的新手

SELECT t_order_product.PRODUCT_CD, m_product.PRODUCT_NAME, count(t_order_product.PRODUCT_CD) as Quantity 
from t_order_product 
JOIN m_product ON t_order_product.PRODUCT_CD = m_product.PRODUCT_CD   
where ORDER_STATUS_CD='2' 
group by PRODUCT_CD 
order by PRODUCT_CD

1 个答案:

答案 0 :(得分:0)

如果您要计算产品的订单,我认为您的sql中有一个错误。您需要计算订单编号。应该是:

SELECT m_product.PRODUCT_CD, m_product.PRODUCT_NAME, count(t_order_product.ID) as Quantity

在cakephp中:

 $datas = $this->Product->find('all',array(
            'contain'=>array(),
            'joins'=>array(
              array(
                'table'=>'t_order_product',
                'alias'=>'Order',
                'type'=>'INNER',
                'conditions'=>array(
                  'Order.PRODUCT_CD = Product.PRODUCT_CD',
                  'Order.ORDER_STATUS_CD'=>2
                )
              )
            ),
            'fields'=>array(
                'Product.PRODUCT_CD',
                'Product.PRODUCT_NAME',  
                'n'=>'count(Order.id)'
            ),
            'group'=>array(
              'Product.PRODUCT_CD'
            )
        ));

结果将是这样的数组:

Array
(
    [0] => Array
        (
            [Product] => Array
                (
                    [PRODUCT_CD] => X,
                    [PRODUCT_NAME] => XXXX,

                )

            [0] => Array
                (
                    [count(`Order`.`id`)] => n
                )

        )
    [1]....

)