これが私の基準です:
$criteria = new CDbCriteria();
$criteria->with = array('userUrls');
$criteria->together = true;
$criteria->compare('userUrls.community_id',Yii::app()->params['currentCommunity']->id);
$criteria->order = 't.weight DESC, t.id DESC';
$urls = Url::model()->findAll($criteria);
私は基本的にをJOIN
介して単純なことをしようとしていMANY_MANY
ます。表を除いてJOIN
、追加の条件が必要です(community_idが指定された条件と一致すること)。
それがない$criteria->together = true;
と、WHEREステートメントで失敗します。
追加$criteria->distinct = true;
しても、JOINテーブルの他のフィールドによって技術的に「一意」になるため、重複が発生します。
フィールドではなく、URLフィールドに基づいて結果を一意にしたいuserUrls
。