thread_id
3 つの列 ( 、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
行を取得して、列のない配列の部分にmessage
andthread_id
を挿入するのはなぜですか?[Model]
message_id
配列の一部に 3 つの列すべてが必要であり、最初の説明に従って、その[Model]
行が最も高くなるようにしたいと考えています。この質問が理にかなっていることを願っています。message_id
thread_id