我在Yii的工作,我有一個名爲表:訪問沒能獲得DISTINCT列值:
它有兩個外鍵:from_user_id和to_user_id其鏈接到「用戶」表。 現在,表訪問有許多相同的'from_user_id',我想在Yii中將它們作爲DISCTINCT進行檢索。
這是我的代碼:
$visited = Visit::model()->findAllByAttributes(array('to_user_id'=>Yii::app()->user->id));
$criteria = new CDbCriteria();
$criteria->distinct = true;
foreach($visited as $visits){
echo User::model()->findByPk($visits->from_user_id,$criteria)->getFullName($visits->from_user_id);
echo " <br>";
}
但是,我不能讓他們作爲不同。
這是我的輸出:
san
san
san
Leo
Leo
我想作爲輸出:
San
Leo
這不是讓我不同的值。我在哪裏錯了?
但是還有哪些其他列正在返回?循環中的'print_r($ visits)'。僅僅因爲'from_user_id'的值在該查詢中不是獨一無二的,並不意味着它不是更大的不同數據集的一部分。 –
我對Yii框架不熟悉,不知道該方法用於檢索查詢中的_only_一列。 –
MichaelBerkowski是正確的,您需要告訴Yii只選擇'from_user_id'列。這是通過'$ criteria-> select ='from_user_id';'2完成的。既然你有外鍵,你也應該有對應的關係。告訴Yii急於加載與'from_user_id'外鍵相對應的關係,並在一個查詢中獲取所有數據,而不是N + 1。 – DCoder