2013-07-04 2 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

Вы можете указать тип соединения в вашей учетной записи. Для конфигурации, как указано в 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' 
      ) 
     ) 
    ) 
)); 

 Смежные вопросы

  • Нет связанных вопросов^_^