我正在尝试将工作查询转换为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。
答案 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就会找出正确的连接,你不必担心它。