简体   繁体   English

如何将该查询转换为CakePHP查询?

[英]How can I convert this query in to CakePHP query?

How can I convert this query into a CakePHP query? 如何将该查询转换为CakePHP查询?

SELECT COUNT(invoices.id) FROM invoices,sales 
WHERE invoices.id=sales.invoice_id AND to_id='13' AND is_updated='0' 
GROUP BY invoice_id

I have two controllers and two models, invoices and sales. 我有两个控制器和两个模型,发票和销售。

For aggregate functions like COUNT , you need to create virtual field. 对于诸如COUNT聚合函数,您需要创建虚拟字段。

$this->Invoice->virtualFields['total'] = 'COUNT(`Invoice`.`id`)';

$result = $this->Invoice->find('all', array(
  'fields' => array('Invoice.total'),
  'joins' => array(
        array(
            'table' => 'sales',
            'alias' => 'Sale',
            'type'  => 'INNER',
            'conditions' => array(
                'Invoice.id = Sale.invoice_id',
            )
        )
    ),
  'conditions' => array(
     'to_id' => 13,
     'is_updated' => 0 
  ),
  'group' => array('Sale.invoice_id')
));

pr($result); // Check your result

Use the following links as references: 使用以下链接作为参考:

Joining tables 联接表

Retrieving Your Data 检索数据

Virtual fields 虚拟领域

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM