Yii标准加上“;加上;产量重复

Yii标准加上“;加上;产量重复,yii,unique,criteria,yii-components,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

这是我的标准:

$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);
我基本上是通过
MANY\u MANY
来做一个简单的
JOIN
。除了在
JOIN
表中,我还需要一个附加条件(社区id与给定的匹配)

$criteria->together=true它在WHERE语句中失败

如果我添加
$criteria->distinct=true它仍然给我重复项,因为联接表中的其他字段使它们在技术上“唯一”


我希望根据URL字段,而不是
userURL
字段,结果是唯一的。

尝试更改join子句

$criteria->join = 'LEFT JOIN';

添加
$criteria->group='t.id'全部修复。这很有意义。

CDbCommand未能执行SQL语句:SQLSTATE[42000]:语法错误或访问冲突:1064您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,了解在(
userurl
url id
t
id
)上使用近“左外部连接”的正确语法,其中(“在第1行,我想它尝试了两次加入:选择
t
id
AS
t0\u c0
t
AS
t0\u c1
t
urlHash
AS
t0\u c2
t
t
语言
AS
t0\u c3
t
t
de>t
摘要
作为
t0\U c5
t
作为
t0\U c6
t
作为
t0
t
作为
t0\U c8
t
作为
de>,
userUrls
userUrls
作为
t1\U c1
userUrls
作为
t1\U c2
userUrls
社区id
作为
t1\U c3
userUrls
创建时间
作为
t1\U c4
url
加入左代码_url
userurl
在(
userurl
url\u id
=
t
id
)上的(userurl.community\u id=:ycp0)尝试添加连接并同时删除。我想我找到了一个非常简单的修复方法:
groupby