CakePHP 1.3 вопрос-вопрос - PullRequest
       2

CakePHP 1.3 вопрос-вопрос

0 голосов
/ 18 марта 2011

Я пытаюсь преобразовать рабочий запрос в CakePHP find. Поэтому я терплю неудачу, пытаюсь использовать контейнерное поведение и так далее, но не повезло. Пожалуйста, помогите мне преобразовать этот запрос SQL в CakePHP find:

SELECT COUNT(DISTINCT(da.dealer_id))
    FROM dealer_access_list da, dealers d
    WHERE   da.dealer_id NOT IN (SELECT dealer_id FROM fixture_inventory)
    AND d.disabled = 0
    AND d.do_not_include IS NOT TRUE
    AND da.dealer_id = d.dealer_id

Спасибо!

У меня проблемы с объединением более двух таблиц и использованием специальных функций SQL. Я хочу использовать CakePHP ORM, а не простой SQL, если это возможно.

1 Ответ

3 голосов
/ 18 марта 2011

Торт раньше имел -!Синтаксис для запуска SQL внутри find, который пригодился бы для вашего вложенного запроса.Но с этим не рекомендуется, насколько я знаю, вам, возможно, придется разбить его на 2 части.

Я собираюсь разместить здесь мой ответ, используя два запроса, пока кто-нибудь не сможет предложить альтернативу с помощью вложенного запроса

$dealers  = //get the dealer IDs in the table in the normal way. make sure it's an array of only the IDs

$opts = array(
  'fields' => array(
    'COUNT(DISTINCT(da.dealer_id)) AS count_dealer_id'
   ),
  'conditions' => array(
    'NOT' => array('da.dealer_id' => $dealers),
    'd.disabled' => 0,
    'd.do_not_include IS NOT TRUE',
  )
)
$results = $this->find('all', $opts); //assuming you're in the correct model

Пока вы правильно настроите ассоциации вмодели, торт определит правильные соединения, и вам не нужно об этом беспокоиться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...