joins in YII framework

how would i write below querry in YII




function Get_Services($user_id, $isResultSet = true){

        $sql = $this->select()

                    ->setIntegrityCheck(false)

                        ->from(array('p' => 'phone_service'))

                        ->join(array('u' => 'user_preferences'), 'u.phone_service_id = p.phone_service_id')

                        ->where('u.user_preferences_name = ?', 'is_user_package_active')

                        ->where('p.user_id = ?', $user_id);

        

        if($isResultSet){

            return $sql->query()->fetchAll();

        }else{

            return $sql;

        }

    }



Roughly:

$sql = Yii::app()->db->createCommand()

   ->from('phone_service p')


   ->join('user_preferences u', 'u.phone_service_id = p.phone_service_id')


   ->where('u.user_preferences_name = :upn', array(':upn' => 'is_user_package_active'))


   ->where('p.user_id = :uid', array(':uid' => $user_id)


   ->queryAll();

More details are here: http://www.yiiframework.com/doc/guide/1.1/en/database.query-builder

You cannot call where() twice, it doesn’t append the next call to the query.




$sql = Yii::app()->db->createCommand()

       ->from('phone_service p')

       ->join('user_preferences u', 'u.phone_service_id = p.phone_service_id')

       ->where(array('AND', 'u.user_preferences_name = :upn', 'p.user_id = :uid')),

       ->queryAll(array(':upn' => 'is_user_package_active', ':uid' => $user_id));



A TYPOOOOO! ;)