1

私は2つのテーブルcountryとを持っていuserます。

モデルcountryでは、私は関係を持っています:

'users' => array(self::HAS_MANY, 'User', 'country_id')

少なくとも1人のユーザーがいるすべての国を検索したいと思います。ドイツからのユーザーがいない場合、ドイツは結果から除外されます。

これを試してみました:

$criteria = new CDbCriteria();
$criteria->join = 'INNER JOIN user ON country.id = user.country_id';
$criteria->order = 'name ASC';
$countries = country::model()->findAll($criteria);

しかし、結果として私はすべての国を持っていました。

助言がありますか?

4

1 に答える 1

3
$criteria = new CDbCriteria();
$criteria->with = array('users');
$criteria->addCondition('users.id IS NOT NULL');
$countries = Country::model()->findAll($criteria);

また

$countries = Country::model()->with('users')->findAll('users.id IS NOT NULL');

users表の主キーはであると仮定したことに注意してくださいid。あなたの場合は何にでも変更してください。

于 2012-12-03T17:47:37.347 に答える