2013-07-09 25 views
5

如何将此sql语句转换为yii格式构建模型?如何从Yii中的条件表中选择两个柱子的DISTINCT?

SELECT DISTINCT agency_id, university_id 
     FROM `tbl_universityagency` where agency_id=1 

像这样我失踪了吗? ,

$criteria = new CDbCriteria(); 
     $criteria->distinct=true;    
     $criteria->condition = "agency_id=".$result->agency_id ;   
     $modal=Universityagency::model()->find($criteria); 
+0

$ criteria-> select ='agency_id,university_id'; – raghul

回答

5
$criteria = new CDbCriteria(); 
$criteria->distinct=true; 
$criteria->condition = "agency_id=".$result->agency_id ;  
$criteria->select = 'id, agency_id, university_id'; 
$modal=Universityagency::model()->find($criteria); 

应产生的查询:

SELECT DISTINCT id,agency_id, university_id FROM `tbl_universityagency` where agency_id=1 LIMIT 1 
+0

neeed Limit = 0 not Limit = 1 – raghul

+1

然后使用findAll() – HarryFink

+1

id始终是唯一的,所以排除“id” – raghul

4

你必须使用findAll()而不是find()

1

快速解决方案!

将下面的代码放在模型文件中。

$criteria = new CDbCriteria; 
$criteria->distinct = true; 
$criteria->condition = "t.C = t.D";     
$criteria->group = "t.A"; 

让我们知道你是否面对任何查询/关注此事。

谢谢!