【问题标题】:Yii criteria usingYii 标准使用
【发布时间】:2012-12-03 16:48:42
【问题描述】:

我有两张桌子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);

但结果我得到了所有国家/地区。

有什么建议吗?

【问题讨论】:

    标签: php sql yii criteria


    【解决方案1】:
    $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。将其更改为适合您的情况。

    【讨论】:

    • 非常感谢您的快速回复。我会尽快尝试并反馈。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    • 2014-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多