私は ArticlesController で、記事数 DESC でソートされたトップ記事ポスターのリストを表示しようとしています。テーブルには、ユーザーが持っているポイントの合計数 (順序なし) も表示する必要があります。記事の総数またはポイントの合計を単独で計算すると、正常に機能しますが、両方の数を同時に計算しようとすると、それぞれの値が正しく返されません。たとえば、ユーザーが記事テーブルに 5 つのレコードを持ち、ポイント テーブルに 10 レコードを持っている場合 (合計で 50 ポイント、それぞれ 5 ポイントとしましょう)、ユーザーは 50 個の記事と 250 ポイントを持っていると出力されます。
$this->paginate = array(
'fields' => array(
'User.username', 'User.online',
),
'conditions' => array(
'Article.page_id' => $page_id,
'Article.status_id BETWEEN ? AND ?' => array(2,6),
'Point.page_id' => $page_id,
),
'link' => array(
'Article' => array(
'fields' => array(
'Article.id', 'COUNT(Article.id) AS articles'
)
),
'Point' => array(
'fields' => array(
'Point.id', 'SUM(Point.amount) AS page_points'
)
),
),
'group' => 'User.id',
'order' => 'articles DESC, User.username ASC',
'limit' => 35,
'contain' => array(
'Avatar' => array(
'fields' => array(
'Avatar.file'
)
),
) // contain
);
$this->set('users', $this->paginate('User'));