2014-02-15 2 views
-1

Я новичок, и я пытаюсь сделать запрос, но не понимаю, как сделать запрос в стиле торта. Я хочу сделать запрос, который выберет всех респондентов, которые не относятся к определенной трансформации. Примеры внизу. CakePHP v 2.4.5Cakephp - присоединительные таблицы, НЕ в

У меня есть три таблицы/модели:

Resondents: идентификатор, имя

public $hasAndBelongsToMany = array(
    'Transformational' => array(
     'className' => 'Transformational', 
     'joinTable' => 'transformationals_respondents', 
     'foreignKey' => 'respondent_id', 
     'associationForeignKey' => 'transformational_id', 
     'unique' => true 
    ) 
); 

Transformationals: идентификатор, имя

public $hasAndBelongsToMany = array(
    'Respondent' => array(
      'className' => 'Respondent', 
     'joinTable' => 'transformationals_respondents', 
     'foreignKey' => 'transformational_id', 
     'associationForeignKey' => 'respondent_id', 
     'unique' => true 
     ), 
}; 

TransformationasRespondent: идентификатор, transformational_id , replyent_id Это таблица соединений

Пример таблицы: респондента: идентификатор, имя 1, Abc 2, Защиту 3, Ghi 4, JKL

transformationals: идентификатор, имя 1, Macrosoft 2, Eddy 3, Взмах

transformationals_respondents: идентификатор, respondent_id, transformational_id 1, 1, 7 2, 2, 7

ТОГДА Мне нужен запрос для выбора респондентов то не в transformationals_respondents и имеет Трансфо rmational_id 7. То есть. респондент Ghi и Jkl

Я был бы очень признателен за руку здесь.

+0

Либо задать этот вопрос как MySQL, или включать в себя фактический запрос вы надеетесь построить с тортом. Перечисляя оба вопроса в одном и том же вопросе, это происходит как «вы можете построить это для меня». – Dave

+0

Это вне темы. Я не могу найти причину, чтобы спросить об этом в разделе MySql, его вопрос о пироге. Выполнение этого запроса в MySql не является проблемой. Кто-нибудь знает о другом форуме, чтобы задать этот вопрос, этот форум получил много усилий. Я не могу понять проблему, могу ли вы это сделать для меня. Для человека, используемого для торта, это был бы довольно простой вопрос. Я попал в эту же проблему в другой теме здесь, на форуме, и объяснил, что тема закрыта. Никакой ответственности вообще. Зачем прикладывать большие усилия для объяснения проблемы для человека, который не понимает, как ответить? – user2895699

+0

Вы не поняли. Если это не проблема, тогда поставьте запрос MySQL, который вы хотите преобразовать, и я рад помочь, но вы не должны просить нас обоим ЗАПИСАТЬ ЗА ЗАПРОС И затем преобразовать его в CakePHP. Понимаю? – Dave

ответ

0

Создать одну функцию в модели Ответчик в

function getSomeSome(){ 

$options = array(
     'conditions' => array('Transformational.id'=>7,'TransformationasRespondent.id IS NULL'), 
     'joins' => array(
      array(
       'alias' => 'TransformationasRespondent', 
       'table' => 'transformationals_respondents', 
       'type' => 'LEFT', 
       'conditions' => array(
        'TransformationasRespondent.respondent_id = Respondent.id', 
       ), 
      ), 
      array(
       'alias' => 'Transformational', 
       'table' => 'transformationals', 
       'type' => 'LEFT', 
       'conditions' => array(
        'TransformationasRespondent.transformational_id = Transformational.id', 
       ), 
      ), 

     ) 
    ); 
    $returnData = $this->find('all',$options); 
    # returnData contains all the records having transformational_id equals to 7 and 
    # does nt have any recors in TransformationasRespondent table 
} 
Смежные вопросы