Группировка по идентификатору и заказ по дате - PullRequest
0 голосов
/ 28 июля 2011
$lastComments = $this->Comment->find('all', array('fields' => array('Comment.news_id', 'Comment.date', 'Comment.content'),
                'group' => array('Comment.news_id, Comment.date'),    
                'order' => array('Comment.date DESC'))
        );

Идея состоит в том, чтобы получить последний комментарий из уникальных тем (1 комментарий - 1 тема).

Этот код не обрабатывает уникальные идентификаторы (уникальные темы), как я могу это исправить?

Distinct не работает.

$lastComments = $this->Comment->find('all', array('fields' => array('Comment.news_id', 'Comment.date', 'Comment.content'),
                'group' => array('Comment.news_id'),    
                'order' => array('Comment.date DESC'))
        );

Этот код возвратит уникальные темы, но порядок по дате не работает: /

Ответы [ 4 ]

1 голос
/ 14 июля 2015
$this->Comment->find('first', array('order'=>array('Comment.id DESC')));
1 голос
/ 01 февраля 2013

Я думаю, что это поможет вам немного ... Просто попробуйте это

$this->Post->find('all',array( 'order' => array('id DESC') )  ); 
0 голосов
/ 11 февраля 2012

Если это может помочь, у меня была та же проблема без CakePHP, решение было использовать Макс (дата)

Возможно что-то подобное в cakephp:

$lastComments = $this->Comment->find('all', 
array('fields' => array('Comment.news_id', 
                        'Comment.date', 
                        'Comment.content'),
                'group' => array('Comment.news_id'),    
                'order' => array('max(Comment.date) DESC'))
        );
0 голосов
/ 28 июля 2011

Вы упомянули, что DISTINCT не работает.Были ли у вас проблемы с использованием синтаксиса DISTINCT в CakePHP, или использование DISTINCT правильно не дало правильных результатов?Я бы попробовал:

$lastComments = $this->Comment->find('all', array('fields' => 
                                                    array('DISTINCT Comment.news_id', 'Comment.date', 'Comment.content'),
                                                 'order' => array('Comment.date DESC'))
    );
...