我有一個CakePHP的2.4模型下面的查詢:CakePHP的發現( '名單')與彙總的數據返回空值
$scores = $this->WorkInfo->find('list', array( 'conditions' => array('WorkInfo.work_id' => $work_ids), 'fields' => array('WorkInfo.date', 'SUM(WorkInfo.score)'), 'group' => array('WorkInfo.date') ));
產生以下查詢:
SELECT
`WorkInfo`.`date`,
SUM(`WorkInfo`.`score`)
FROM
`home`.`work_infos` AS `WorkInfo`
WHERE
`WorkInfo`.`work_id` IN (4, 7, 8, 12, 9, 11, 13, 10, 14, 6, 5)
GROUP BY
`WorkInfo`.`date`
我在我的申請中得到的結果是:
'2014年3月24日'=>空
'2014年3月25日'=>空
'2014年3月26日'=>空
'2014年3月27日'=>空
'2014年3月28日'=>空
'2014-03-31'=>空
雖然結果我從MySQL控制檯粘貼此非常查詢得到的是:
'2014-03-24'=> 0
'2014年3月25日'=> 36
'2014年3月26日'=> 0
'2014年3月27日'=> 164
'2014年3月28日'=> 0
' 2014-03-31'=> 0
這是怎麼回事?假設相同的查詢輸出相同的結果,不是嗎?
我已經閱讀了關於爲此創建虛擬字段的一些內容,但我不想過分誇張,應該可以使用find函數通過Cakephp執行簡單的聚合查詢。
謝謝!
哇!真棒解釋我已經嘗試了你提到的「as score」,並且解釋了你的結果,非常感謝,我認爲這個問題是CakePHP開發者應該關注下一個版本的問題。我將使用find('all'),就像艾薩克拉吉建議的那樣,但至少現在我知道我爲什麼不能按自己的方式去做。 – patopato