所以我有这个查询,我试图转换为蛋糕ORM,我不知道如何去做。
我有一个用户表和一个单词表。用户有很多单词(这就是关系)。我想写一个查询,它将为我提供在系统中添加了最多单词的用户。这是我写的当前查询但我无法将其转换为cakephp ORM语法,任何想法?
SELECT
users.username,
COUNT(word) AS n
FROM
users AS users
INNER JOIN words AS words
ON users.userid=words.userid
GROUP BY
users.username
ORDER BY
n DESC
LIMIT 3
答案 0 :(得分:3)
编写查询的方法有很多种: - 在控制器中,您可以写为 -
$options = array(
'fields' => array(
'User.name',
'COUNT(Word.id) as word_count',
),
'group' => 'Word.user_id',
'order' => 'word_count DESC',
);
$users = $this->User->Word->find('first', $options);
debug($users);
在用户模型中,你必须写:
public $hasMany = 'Word';
在Word模型中,你必须写:
public $belongsTo = 'User';