2013-08-05 5 views
0

나는 '서비스'라는 간단한 테이블을 가지고 있습니다.CakePHP - 테이블에서 가장 많이 발생하는 값 검색

각 레코드는 단순히 ID와 'service_name'으로 구성됩니다.

이러한 서비스는 고객이 '고객 테이블'에서 서비스 ID로 연결하여 사용합니다.

케이크를 사용하여 '고객'테이블에서 가장 일반적으로 사용되는 서비스는 어떻게 받습니까?

답변

1

사용은 CounterCache Field

또한 해당 필드에 의해 그룹과 COUNT을 (GET)는 다음 서비스를 조회 할 수 있습니다.

$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']; 
} 
+0

+1 for Hash :: combine – kaklon

관련 문제