2

したがって、このクエリをケーキ 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
4

1 に答える 1

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';
于 2012-07-16T08:46:23.577 に答える