2013-07-09 8 views
5

Jak przekonwertować to wyrażenie sql do formatu yii zbudować model?Jak wybrać DISTINCT dwóch kolumn z tabeli z warunkiem w Yii?

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

Podoba mi się to, czego mi brakuje? ,

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

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

Odpowiedz

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); 

powinna sporządzić zapytanie:

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

neeed Limit = 0 nie Limit = 1 – raghul

+1

następnie użyj findAll() – HarryFink

+1

id zawsze unikatowy więc wyłącz "id" – raghul

4

Musisz użyć findAll() zamiast find().

1

Szybkie rozwiązanie!

Umieść poniższy kod w swoim pliku modelu.

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

Daj nam znać, jeśli napotkasz jakiekolwiek zapytanie/wątpliwości dotyczące tego.

Dzięki!