2013-07-04 37 views
0

我正在cakephp上工作並嘗試實現連接。或內部連接查詢......我在做什麼,現在是這樣的嘗試在Cakephp中實現連接查詢

$this->bindModel(array(
    'belongsTo' => array(
     'Contact' => array(
      'className' => 'Contact', 
      'foreignKey' => false, 
      'conditions' => array(
       'Message.user_id = Contact.user_id', 
       'Message.mobileNo = Contact.mobileNo' 
      ) 
     ) 
    ) 
), false); 

return $message_details = $this->find('all', array(
    'conditions' => array(), 
    'fields' => array('DISTINCT mobileNo') 
)); 

該查詢正在進行LEFT JOIN表..我要的是加入內連接表

兩者之間

回答

1

您可以在您的belongsTo配置中指定加入類型,如the documentation中所述。默認值是保留的,但您可以使用任何有效的連接類型。只需添加'type' => 'inner'到配置陣列,所以你應該得到的東西是這樣的:

$this->bindModel(array(
    'belongsTo' => array(
     'Contact' => array(
      'className' => 'Contact', 
      'foreignKey' => false, 
      'conditions' => array(
       'Message.user_id = Contact.user_id', 
       'Message.mobileNo = Contact.mobileNo' 
      ), 
      'type' => 'inner' // Simply add this 
     ) 
    ) 
), false); 
+0

三江源...... .................... – hellosheikh

1

或者,您可以添加連結到您的查詢,而無需使用bingModel:

return $message_details = $this->find('all', array(
    'conditions' => array(), 
    'fields' => array('DISTINCT mobileNo'), 
    'joins'=>array(
     array(
      'table'=>'contacts, 
      'alias'=>'Contact', 
      'type'=>'INNER', 
      'conditions'=>array(
       'Message.user_id = Contact.user_id', 
       'Message.mobileNo = Contact.mobileNo' 
      ) 
     ) 
    ) 
));