1

我有两张桌子countryuser.

在模型country中我有关系:

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

我想找到至少有一个用户的所有国家。如果没有来自德国的用户,德国将被排除在结果之外。

试过这个:

$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 回答