CakePHP 1.3查询问题

时间:2011-03-18 17:49:30

标签: php mysql cakephp

我正在尝试将工作查询转换为CakePHP查找。所以我失败了,尝试使用Containable行为等等,但没有运气。请帮我把这个SQL查询转换为CakePHP查找:

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 个答案:

答案 0 :(得分:3)

蛋糕曾经 - - !在find中运行SQL的语法,这对于嵌套查询会派上用场。但据我所知,这可能不得不将其分解为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

只要你在模型中正确设置了关联,cake就会找出正确的连接,你不必担心它。