蛋糕php自定义查询

I have use custom query in cakephp but I dont understand how to run custom join query. I am using this code

$arrayTemp1 = $this->User->query('SELECT DISTINCT
                u.id,u.hunting_association FROM ht_users as u LEFT JOIN 
                `ht_user_animal_prices` as uap ON uap.user_id=u.id  WHERE
                uap.animal_type_id='.$this->request->data['User']['animal'].' ');

User is the model for ht_users and UserAnimalPrice is the model for ht_user_animal_prices. How to combine the query?

Please help.

If you want to use custom queries and you want the data of UserAnimalPrice model, you just have to put the fields in the query. Something like:

$arrayTemp1 = $this->User->query('SELECT DISTINCT u.id,u.hunting_association, uap.* FROM ht_users as u LEFT JOIN  ht_user_animal_prices as uap ON uap.user_id=u.id WHERE uap.animal_type_id='.$this->request->data['User']['animal'].' ');

If you prefer not to use custom queries:

$fields = array('User.id','User.hunting_association','UserAnimalPrice.*');
$join = array(
   array(
      'table' => 'ht_user_animal_prices',
      'alias' => 'UserAnimalPrice',
      'type'  => 'LEFT',
      'conditions' => array('UserAnimalPrice.user_id = User.id')
   )
);
$conditions = array('UserAnimalPrice.animal_type_id' => $this->request->data['User']['animal']);
$group = array('User.id');

arrayTemp1=arrayTemp1->find('all',array('fields'=>$fields,'joins'=>$join,'conditions'=>$conditions,'group'=>$group));

This is Correct Query u used .You can also use it in User Model like

public function getCustomUsersQuery()
{

$arrayTemp1 = $this->query("
    SELECT 
    DISTINCT u.id,u.hunting_association FROM ht_users as u 
    LEFT JOIN  
    ht_user_animal_prices as uap ON uap.user_id=u.id  
    WHERE 
    uap.animal_type_id='".$this->request->data['User']['animal']."'");
return $arrayTemp1; 
}

And call inside Users Controller

$result = $this->getCustomUsersQuery();

Sorry I cannot comment on Rizwan answer. If you received the "Call to a member function..." problem, make sure you have the following code

public $uses = array('User');

this tells that you want to access the user model in that controller. Then you will be allowed to do so.