Как преобразовать этот SQL-запрос в формате CakePHP? - PullRequest
0 голосов
/ 28 июня 2018

Может кто-нибудь, пожалуйста, помогите преобразовать этот запрос в формат 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 голосов
/ 29 июня 2018

Я думаю, что в вашем 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]....

)
...