2012-06-08 47 views
-4

我怎么会写下面的查询在Yii框架加入在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; 
    } 
} 
+1

警予文档解释了连接,并有大量的教程在该网站上还有。 – Orlymee

回答

2

大致为:

$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(); 
0

试试这个...

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->queryAll(); 
     }else{ 
      return $sql; 
     } 
    } 
0
$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=:preferences',array(':preferences'=>'is_user_package_active')) 
->where('p.user_id = :uid', array(':uid' => $user_id) 
->queryAll(true);  
-1

请尝试以下

$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); 
$query= $model->findAll($sql); 
0

我建议你为此创建模型,使用Yii深入探讨关系,并使用活动记录和with()调用进行联接。

这可能是后像一个简单的通话

$records = PhoneServices::model()->with(array('userPreferences' => 
array('condition' => 'userPreferences.user_preferences_name = 
"is_user_package_active" ')))->findAllByAttributes(array('user_id' => $user_id));