Cakephp 2.xi に取り組んでいます Cakephp の初心者で、cake クエリ メソッドを把握するのに非常に苦労しています 結合クエリを実装しましたが、ここで動作していないのは私のコードです
実際に私が達成しようとしていること:
フィールドMessage.mobileNoに重複する番号があるテーブル名Messagesがあります... 個別の番号を選択したいだけで、それらの個別の番号に基づいて、mobileNo がある連絡先テーブルを比較または結合しています,workNo などのフィールドをチェックし、それらの番号が連絡先テーブルにあるかどうかを確認します..もしあれば、連絡先の名前を取得してください..理解していただければ幸いです
だから私がしたことは...メッセージテーブルの個別の番号に対して連絡先テーブルの行を取得しようとしています..
function getRecentMessages($userid){
$this->bindModel(array(
'belongsTo' => array(
'Contact' => array(
'className' => 'Contact',
'foreignKey' => false,
'conditions' => array(
'AND' =>
array(
array('OR' => array(
array('Message.mobileNo = Contact.mobileNo'),
array('Message.mobileNo = Contact.workNo'),
array('Message.mobileNo = Contact.homeNo'),
array('Message.mobileNo = Contact.other'),
)),
)
),
'type' => 'LEFT',
'order'=>'Message.idTextMessage DESC',
)
)
), false);
return $this->find('all', array('conditions' => array('Message.User_id' => $userid),
'contain' => array('Contact' ),
'fields' => array(' DISTINCT Message.mobileNo',//distnct not working
'Contact.mobileNo',
'Contact.workNo',
'Contact.homeNo',
'Contact.other',
'Contact.name',
'Message.dateTime',
'Message.type',
'Message.body'),
'limit' => 6));
}
私はこれを試しました
DISTINCT (Message.mobileNo) as mobileNo
しかし、あまりにもうまくいきませんでした
私が試してみました
'group' => 'Message.mobileNo',
これを使用すると機能しますが、クエリは必要な結果を取得していません..つまり、DESC条件が機能しないことを意味します