У меня есть модель местоположения, а также модель события
Я хочу получить СУММУ всех событий для каждого местоположения
Я думал, что смогу сделать это, имея следующую дополнительную модель:
<?php
class Eventcount extends AppModel {
var $name = 'Eventcount';
var $useTable = 'events';
var $virtualFields = array(
'event_count' => 'COUNT(*)'
);
}
?>
Это указывается по мере необходимости в модели Location.
Тем не менее, я думал, что это будет делать JOIN, используя WHERE Location.ID = Eventcount.location_ID, но это не так, вместо этого в коде отладки я получаю это:
SELECT (COUNT(*)) AS `Eventcount__event_count`, `Eventcount`.`location_id` FROM `events` AS `Eventcount` WHERE `Eventcount`.`location_id` IN (6, 11, 13, 15, 7, 14, 4, 5, 10, 2, 9, 3, 1, 8)
Таким образом, вместо суммы событий для каждого местоположения, я получаю одну строку для первого
совпадать с суммой всех событий для каждого местоположения.
То есть:
[Eventcount] => Array
(
[0] => Array
(
[location_id] => 7
[event_count] => 2
)
)
Число 2 рядом с event_count - это общее количество событий в базе данных, а не общее число, где location_id = 7.
Как я могу исправить это?