thread_id3 つの列 ( 、message_id、 )を持つ MySQL テーブルがありますmessage。このリンクの「GROUP BY を使用した例」の下にあるソリューションの行に沿って、クエリを GROUP BY にしたいのですthread_idがmessage_id、各thread_id. 次に、の行に沿って CakePHP であまり複雑でない検索操作を取得するのと同じように、行/項目を含む適切にフォーマットされた配列が必要です$array[index]['Model']['field']。次の CakePHP 構文を使用します。
$this->Model->find('all', array(
'fields' => array('MAX(Model.message_id) as message_id', 'Model.thread_id', 'Model.message'),
'group => 'Model.thread_id'
));
残念ながら、うまくフォーマットされた配列を取得できません。代わりに、次のような配列を取得します。
Array ( [0] => Array ( [0] => Array ( [message_id] => want/correct_message_id ) [Model] => Array ( [message] => 最低/不要な message_id 行からのメッセージ。 [thread_id] =>最低/不要な message_id 行からのキー))
message_idが配列の一部に引っ掛からないのはなぜですか? [Model]CakePHP が一番下のmessage_id行を取得して、列のない配列の部分にmessageandthread_idを挿入するのはなぜですか?[Model]message_id
配列の一部に 3 つの列すべてが必要であり、最初の説明に従って、その[Model]行が最も高くなるようにしたいと考えています。この質問が理にかなっていることを願っています。message_idthread_id