Выборка Данных С With

Привет.

Есть две модели Comment и Vote. Отношение Comment к Vote прописано следующим образом:


'userVote' => array(self::HAS_ONE, 'Vote', 'comment_id', 'condition' => 'userVote.author_id=' . Yii::app()->user->id)

Comment может иметь, а может и не иметь связь ‘userVote’. Но тем не менее, каждый раз происходит обращение к БД, для того, чтобы совершить выборку Vote по вышеприведенному условию.

Вызов связи Vote происходит в модели Comment следующим образом:


public function getUserVote()

{

	if (!Yii::app()->user->isGuest)

		return $this->userVote ? $this->userVote->value : null;

	else

		return null;

}

Комментариев может быть очень много. И для каждого из них формируется новый запрос к БД.

Логично было бы объединить все эти запросы в один и доставать userVote вместе с каждым Comment.

Делаю это следующим образом в контроллере:


$criteria = new CDbCriteria();

...

$criteria->with = array('userVote');

$allComments = Comment::model()->findAll($criteria);

Но извлекаются только те комментарии, у которых связь userVote не равна null.

Как можно достать все комментарии со связью userVote, а не только те, у которых она существует?

Если связь не существует, то $comment->userVote достать как null.