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
ASt0\u c0
,t
ASt0\u c1
,t
urlHash
ASt0\u c2
,t
t
语言ASt0\u c3
,tt
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
!