SQL - 选择distinct,但使用CakePHP Find返回所有列

时间:2014-02-18 00:16:49

标签: sql cakephp select find distinct

我希望使用cakephp做同样的事情:

https://stackoverflow.com/a/6127471

    $eachRWithCode = $this->MovieReview->find( 'all', array(
    'fields' => 'MovieReview.*',
    'group' => array('MovieReview.code'),
    'recursive' => '-1',
    'nofilter' => true,
    'order' => 'MovieReview.code'
    ));

此代码出错:

错误:列“MovieReview.id”必须出现在GROUP BY子句中或用于聚合函数

1 个答案:

答案 0 :(得分:0)

你正在使用什么DBMS? Mysql允许您显示您在聚合函数中不使用的列(但您不是,但是DBMS不会这样。因此,您想要显示的每个列都必须将它放在聚合函数中,例如MAX()SUM()COUNT()

所以你必须做一些事情(假设你有一个得分列):

$eachRWithCode = $this->MovieReview->find( 'all', array(
    'fields' => array(
        'COUNT(MovieReview.id)',
        'AVG(MovieReview.score),
        'MAX(MovieReview.code)
     ),
    'group' => array('MovieReview.code'),
    'recursive' => '-1',
    'nofilter' => true,
    'order' => 'MovieReview.code'
    ));
相关问题