我需要使用 CakePHP find 方法执行以下查询:
SELECT * FROM `ads`
INNER JOIN fields_values ON fields_values.ref_id = ad.id
WHERE ad.active = 1
我尝试了这个功能,但她不起作用:
$ads = $this->Ad->find('all', array(
'joins' => array(
array(
'table' => 'fields_values',
'alias' => 'fv',
'type' => 'INNER',
'conditions' => array(
"Ad.id = fv.ref_id "
)
)
),
'conditions' => array(
'Ad.active' => 1
),
));
最佳答案
你的查询是错误的,应该是
SELECT * FROM `ads`
INNER JOIN fields_values as fv ON fv.ref_id = ads.id
WHERE ads.active = 1
现在您可以使用蛋糕查询来构建它。哪个左连接也可以做到这一点。
$ads = $this->Ad->find('all', array(
'conditions' => array(
'Ad.active' => 1
),
'joins' => array(
array(
'table' => 'fields_values',
'alias' => 'fv',
'type' => 'LEFT',
'conditions' => array(
"fv.ref_id = Ad.id",
// or you can add the top condition here
//'Ad.active' => 1
)
)
),
));
关于php - CakePHP 与内部连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32244995/