2011年02月15日

多重innerjoin

お願いします♪いいねとかつぶやいたりして下さい
 

User ユーザー情報
Attachment 画像情報
Girl 女の子情報

の3つのテーブルを
・年齢認証している
・女の子テーブルを持っている
・女の子の画像を持っている

の条件で、さらに新人順で並び変えて取得するには



$this->contain();
			
$fields = array(
            //年齢認証済み
            'conditions' => array('User.agecheck' => 1),
            'fields' => array('*','count(Attachment.id) as num'),
            'limit' => 4,
            'order' => array('User.id desc'),
            'joins' => array(
                             array('type' => 'INNER',
                                   'table' => $this->tablePrefix.'attachments',
                                   'alias' => 'Attachment',
                                   //女の子の写真を持っている
                                   'conditions' => array('Attachment.alternative' => 'girlphoto','User.id=Attachment.foreign_key'),
                                  ),
                            array('type' => 'INNER',
                                   'table' => $this->tablePrefix.'girls',
                                   'alias' => 'Girl',
                                   'conditions' => array('User.id=Girl.user_id'),
                             ),
                       ),
            //グループ化して同じデータを取得しないようにする
            'group' => array('User.id'),
          );

$res = $this->find('all', $fields);
pr($res);


こんな感じでいける。
hasone , belongsto, innerjoin

ものすごく難しいけど、ここだけ抑えりゃあとは余裕と。
関連するタグ: PHP cakephp MYSQL
あなたにとって有用な記事でしたか?是非ブックマークしておくことをおすすめします。
 




ライブラリを配布しちゃったり
webデザイン
Fireworks
HTMLコーディング
CSS
Dreamweaver
携帯サイト
webプログラム
PHP
正規表現
cakephp
MYSQL
javascript
webマーケティング
adwords
analytics
windows7
ショートカットキー
おすすめ情報
サイト
facebook
ライブラリ
配布
アプリ
iphone
ipad
サーバー
さくらサーバー
全ての記事を読む




トップ - 最新の記事一覧 - お問い合わせ