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
    ));