具有“与”的Yii标准产生重复

时间:2012-11-15 17:56:57

标签: yii unique criteria yii-components

这是我的标准:

$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表中的其他字段在技术上使它们'UNIQUE'。

我希望结果基于URL字段 UNIQUE ,而不是userUrls字段。

2 个答案:

答案 0 :(得分:2)

添加$criteria->group = 't.id';修复了所有问题。这是有道理的。

答案 1 :(得分:1)

尝试更改join子句。

$criteria->join = 'LEFT JOIN';