Intereting Posts
Является ли использование заголовка местоположения в ответе HTTP 202 RFC-совместимым? API YouTube V3: Где я могу найти список каждого «videoCategoryId»? PHP – получить изображение из массива байтов как установить openssl для php 5.3.5 на windows xp? Установите PEAR с Wamp 2.1 Memcached: как прервать ограничение при извлечении всех ключей Вырезать пробелы внутри переменной в PHP Используйте mod_rewrite для удаления расширения .php и очистки URL-адресов GET одновременно Как я могу получить сообщение об ошибке для функции mail ()? Как экспортировать объект как CSV в Symfony? Сложный запрос + скрипт разбивки на страницы Как я получаю от привычки процедурного программирования и объектно-ориентированного программирования? Длинное целое преобразуется при вставке в более короткий столбец, а не усечен. Зачем? Какова формула? Как установить страницу категории в качестве домашней страницы в Prestashop Использовать Laravel для загрузки таблицы в формате CSV

CakePHP и GROUP BY

Используя CakePHP 1.2, я пытаюсь создать запрос GROUP BY :

 SELECT `categories`.*, COUNT(`entities`.id) FROM `categories` LEFT JOIN `entities` ON (`categories`.`id` = `entities`.`category_id`) GROUP BY `categories`.`id` 

Как мне / мне следует это делать? Я использую «Containable», если это помогает.

Это то, что я сделал с помощью:

  $options = array( 'conditions' => $conditions, 'fields'=>array('Category.*','COUNT(`Entity`.`id`) as `entity_count`'), 'joins' => array('LEFT JOIN `entities` AS Entity ON `Entity`.`category_id` = `Category`.`id`'), 'group' => '`Category`.`id`', 'contain' => array('Domain' => array('fields' => array('title'))) ); return $this->find('all', $options); 

Model-> find () имеет group параметр.

Возможные ключи по умолчанию, все из которых являются необязательными:

 $params = array( 'conditions' => array('Model.field' => $thisValue), //array of conditions 'recursive' => 1, //int //array of field names 'fields' => array('Model.field1', 'DISTINCT Model.field2'), //string or array defining order 'order' => array('Model.created', 'Model.field3 DESC'), 'group' => array('Model.field'), //fields to GROUP BY 'joins' => array('Join relations here'), // for ex: LEFT JOIN `entities` AS Entity ON `Entity`.`category_id` = `Category`.`id` 'limit' => n, //int 'page' => n, //int 'offset' => n, //int 'callbacks' => true //other possible values are false, 'before', 'after' ); 

Запрос:

 $resp = find('all', $params); debug($resp);