CakePHP - 从表中检索大多数出现的值

时间:2013-08-05 08:51:49

标签: php mysql cakephp

我有一个名为'服务'的简单表。

每条记录只包含一个ID和'service_name'。

然后客户在“客户表”中使用这些服务,这些服务由服务ID链接。

如何使用cake从'Customers'表中获取最常用的服务?

1 个答案:

答案 0 :(得分:1)

使用CounterCache Field

您还可以按该字段进行分组,然后获取COUNT(),然后查找服务。

$services = $this->Service->find('all');
$services = Hash::combine($services, '{n}.Service.id', '{n}.Service');

$service_counts = $this->Customer->find('all', array(
    'fields' => array('Customer.service_id', 'COUNT(*) AS count'),
    'group'  => 'Customer.service_id',
));

foreach($service_counts as $service) {
    $services[$service['Customer']['service_id']]['Service']['count'] = $service[0]['count'];
}