<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Tao

    Tao obeys its own inherent Nature

    How To: Using symfony to add a join between tables

    1. simple join two tables

    purpose:
    generate sql like:   

    select * from photo p
        left join artist a on p.artist_id = a.artist_id
          where a.genre = 'something' and p.genre = 'something'
    

    code:           

    if(!CriteriaUtil::hasJoin($criteria, ArtistPeer::TABLE_NAME)){
        $criteria->addJoin(PhotoPeer::ARTIST_ID, ArtistPeer::ARTIST_ID, Criteria::LEFT_JOIN);
    }
    $criteria->add(ArtistPeer::GENRE, $genre);    
    $criteria->add(PhotoPeer::GENRE, $genre);

    2. join two tables, add AND OR between conditions
    purpose:
    generate sql like:    

    select * from photo p
        left join artist a on p.artist_id = a.artist_id
          where (a.genre = 'some' or p.genre='something')
            and a.name = 'something'

    code:   

    if(!CriteriaUtil::hasJoin($criteria, ArtistPeer::TABLE_NAME)){
       $criteria->addJoin(PhotoPeer::ARTIST_ID, ArtistPeer::ARTIST_ID, Criteria::LEFT_JOIN);
    }
    $criteria->add(ArtistPeer::GENRE, $genre);
    $c = $criteria->getCriterion(ArtistPeer::GENRE);
    if($c != null){
       $c->addOr($criteria->getNewCriterion(PhotoPeer::GENRE, $genre));
    }
    $criteria->add(ArtistPeer::NAME, $name);

     

    Note:
    It's a good habit to check if we have joined the table already. to check this, you can use the following util class, it get all the joined tables, and check if the table exists in them.

    class CriteriaUtil{
        public static function hasJoin($c, $table_name){
            $joins = $c->getJoins();
            if($joins != null){
                foreach($joins as $join){
                    if($join->getRightTableName() == $table_name){
                        return true;
                    }
                    if($join->getLeftTableName() == $table_name){
                        return true;
                    }
                }
            }
            return false;
        }
    }
    

    posted on 2007-12-05 17:26 wade 閱讀(533) 評論(0)  編輯  收藏 所屬分類: PHPSymfony


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     

    導航

    <2007年12月>
    2526272829301
    2345678
    9101112131415
    16171819202122
    23242526272829
    303112345

    統計

    常用鏈接

    留言簿(7)

    隨筆分類

    隨筆檔案

    相冊

    Photo

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲av无码国产精品色午夜字幕| 中文字幕亚洲激情| 亚洲乱码无限2021芒果| 最近中文字幕2019高清免费| 亚洲视频2020| 51视频精品全部免费最新| 久久久久亚洲AV成人片| 蜜臀98精品国产免费观看| 亚洲视频在线观看网站| 国产精品1024永久免费视频| 亚洲一区二区三区高清视频| 免费精品人在线二线三线区别| 国产精品亚洲自在线播放页码| 97人伦色伦成人免费视频| 亚洲AV无码一区二区三区网址| 成在线人永久免费视频播放| 国产偷国产偷亚洲高清人| 亚洲国产成人精品久久久国产成人一区二区三区综 | 亚洲五月六月丁香激情| 亚洲精品在线免费看| 亚洲一区二区三区免费观看| 毛片免费全部播放一级| 特级无码毛片免费视频| 亚洲综合色自拍一区| 久久久久久曰本AV免费免费| 亚洲狠狠成人综合网| 亚洲国产婷婷香蕉久久久久久| 久9久9精品免费观看| 亚洲日韩av无码中文| 亚洲色精品88色婷婷七月丁香| 久久午夜羞羞影院免费观看| 亚洲人成未满十八禁网站| 日韩精品亚洲aⅴ在线影院| 久久久久高潮毛片免费全部播放 | 黄网站色视频免费看无下截| 亚洲精品乱码久久久久久| 日韩免费精品视频| 一级黄色片免费观看| 亚洲电影在线播放| 精品亚洲一区二区三区在线观看| 精品无码国产污污污免费网站|