スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
このエントリーをはてなブックマークに追加

[cakePHP]find時に他のfindの値をくっつける

サブクエリ(副問い合わせ)という仕組みを使います。
やりかたは単純で、単一の値を取得できるfindを作成して別のfindのfields内に突っ込むだけです。
$dbo = $this->AAA->getDataSource();
//BBBモデルのfindをSQLテキストとして出力
App::uses('BBB', 'Model');
$BBB = new BBB();
$bbb_sum_query = $dbo->buildStatement(array('fields'=>array('SUM(BBB.value)')
,'table' =>$dbo->fullTableName($BBB)
,'alias' =>'BBB'
,'conditions'=>array('AND'=>array('BBB.aaa_id = AAA.id')))
,$BBB);
//AAAモデルのfieldsへ値として付加する
$options = array("fields"=>array("AAA.id","({$bbb_sum_query}) AS bbb_sum_query"));
$aaa = $this->AAA->find("all",$options);


BBBの持つaaa_id(AAAのid)とAAAのidが一致するデータのvalueを合計した結果を
bbb_sum_queryとしてAAAのfindで抽出されます。

参考URLはさらに詳しく説明しています。

参考URL1:CakePHPでサブクエリを使う
参考URL2:データを取得する - 複雑な検索条件 - サブクエリ
このエントリーをはてなブックマークに追加

tag : cakephp sql find 複数 サブクエリ 副問い合わせ 結果 select fields 入れる

コメントの投稿

非公開コメント

Translation


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。
プロフィール

チーズくん

Author:チーズくん
個人的メモをただ羅列しています。
twitter:@cheese1038

バロメーター
最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。