2014-03-26 39 views
0

我有表USERS(ID,電子郵件),電子郵件(ID,消息接收器,USER_ID),服務(ID,服務,USER_ID)...如何寫CakePHP的一個MySQL查詢參照不同的表

用戶發佈服務,另一個用戶通過郵件回覆該服務。我想編寫一個查詢,它將檢索發佈該USERS特定服務的用戶的電子郵件,並在有人回覆該服務時將其捕獲到MAIL的收件人字段中。

我是相當新的蛋糕,不知道從這裏到

$receiver = $this->User->find('first',array(
      'conditions' => array(
        'Users.user_id' => 'Services.user_id', 
      ) 
)); 

SQL Query 

SELECT u.email FROM users AS u, services AS s WHERE s.user_id = u.id LIMIT 0 , 30 
+0

先通關係,那麼你會檢索有關用戶的所有信息 – przeqpiciel

+0

請註明在SQL你的願望查詢 –

+0

關係都做了,我只需要在查詢 –

回答

0

假設去你user.php的模型,創建一個動作如下圖所示

function getData(){ 
$options = array(
     //'conditions' => array(‘User.user_id’=>9), 
     'joins' => array(
      array(
       'alias' => 'Service', 
       'table' => ‘services’, 
       'type' => 'LEFT', 
       'conditions' => array(
        'Service.user_id = User.id', 
       ), 
      ), 
      array(
       'alias' => 'Mail', 
       'table' => ‘mail', 
       'type' => 'LEFT', 
       'conditions' => array(
        'Mail.user_id = User.id', 
       ), 
      ) 
     ), 
     'fields' => array('User.email'), 
     'limit'=>10 

    ); 

$returnData = $this->find('all',$options); 
return $returnData; 
} 

從控制器將此方法稱爲

$data = $this->User->getData(); 
print_r($data); 

希望它能解決您的問題!型號