0

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条件が機能しないことを意味します

4

1 に答える 1