を見つける:ケーキにSQLクエリIN/SELECTを翻訳することは、私はこの線に沿って、クエリを持って
SELECT * FROM posts WHERE owner_id IN (SELECT owner_id FROM owners_list WHERE user_id = 1) ORDER BY modified DESC
最も効率的なケーキは、それが同等である呼び出す見つけるは何?ありがとう!
を見つける:ケーキにSQLクエリIN/SELECTを翻訳することは、私はこの線に沿って、クエリを持って
SELECT * FROM posts WHERE owner_id IN (SELECT owner_id FROM owners_list WHERE user_id = 1) ORDER BY modified DESC
最も効率的なケーキは、それが同等である呼び出す見つけるは何?ありがとう!
3の選択肢:
1)それは複雑ですが、ケーキは、サブクエリを処理します: http://book.cakephp.org/2.0/en/models/retrieving-your-data.html#sub-queries
ここでは例を持っているSOの質問です: Subquery in cakePHP to lookup in other table
2)使用aはjoin statement: http://book.cakephp.org/2.0/en/models/associations-linking-models-together.html#joining-tables
3)そのままクエリをそのままModel::query()経由で使用できます。あなたが最初に消毒するまで長くてください
私はエラーが発生しにくく、消毒/エスケープについて心配する必要がないので、オプション2を選択することをお勧めします。そしてあなたが結合のハングアップを取得すると、あなたはそれらをより頻繁に使用して見つけるでしょう。
あなたは2つの発見でそれを行うことができます。私はあなたの所有者リストのモデル名が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
));