Cakephp 将SELECT/IN SQL查询转换为蛋糕查找
我有一个大致如下的问题:Cakephp 将SELECT/IN SQL查询转换为蛋糕查找,cakephp,Cakephp,我有一个大致如下的问题: SELECT * FROM posts WHERE owner_id IN (SELECT owner_id FROM owners_list WHERE user_id = 1) ORDER BY modified DESC 什么是等效的最有效的Cake find调用?谢谢 3种选择: 1) Cake确实处理子查询,尽管它很复杂: 这里有一个问题有一个例子: 2) 使用join语句: 3) 只要先进行清理,就可以按原样通过via使用查询 我更喜欢选项2,因为它
SELECT * FROM posts WHERE owner_id IN (SELECT owner_id FROM owners_list WHERE user_id = 1) ORDER BY modified DESC
什么是等效的最有效的Cake find调用?谢谢 3种选择:
1) Cake确实处理子查询,尽管它很复杂:
这里有一个问题有一个例子:
2) 使用join语句:
3) 只要先进行清理,就可以按原样通过via使用查询
我更喜欢选项2,因为它不太容易出错,而且我不必担心消毒/逃逸。一旦你掌握了连接的诀窍,你就会发现自己更经常地使用它们。你可以在两次发现中完成。我将假定您的owners\u列表表的型号名称为OwnersList:
$user_ids = $this->OwnersList->find('list', array(
'fields'=>array('id','id'),
'conditions'=>array(
'OwnersList.user_id'=>1
)
));
$results = $this->Post->find('all',array(
'Post.owner_id'=>$user_ids
));