doupang1917 2012-11-02 02:45
浏览 52

如何在yii活动记录的with子句中添加条件? [关闭]

i have a with clause in my criteria like this

$criteria2->with = array('subcat','adimages');

but i actually need to have this subcat to be unique, but if i will add a condition like this

$criteria2 = new CDbCriteria();
$criteria2->select = '"t".USERID, "t".ADID ,"t".ADTYPE, "t".ADTITLE, "t".ADDESC, "t".PAGEVIEW, "t".DISPPUBLISHDATE,"t".SUBCATID';
$criteria2->addCondition("USERID IN (".implode(',',$uniqueuser).")");
$criteria2->addCondition("ADID IN (".implode(',',$uniquead).")");
//  $criteria2->addCondition("SUBCATID IN(".implode(',',$uniquesubcat).")");
//  $criteria2->compare("\"t\".SUBCATID", $this->SUBCATID);
$criteria2->addCondition('DISPPUBLISHDATE >= CURRENT_DATE - 3 AND STATUS = 1
        AND EXPIRYDATE >= CURRENT_DATE AND USERID IS NOT NULL');
$criteria2->addCondition('EXISTS  (select 1 FROM {{ADIMAGES}} WHERE {{ADIMAGES}}.ADID = "t".ADID)');
$criteria2->order = '"t".PAGEVIEW DESC,"t".PUBLISHDATE DESC';
$criteria2->limit = 4;
$criteria2->addCondition("\"subcat\".SUBCATID IN(".implode(',',$uniquesubcat).")");     
$criteria2->with = array('subcat','adimages');
$result2 = $this->findAll($criteria2);
return $result2;

am getting an error of ambigious column defined... how do i set that subcat relation to be inside the unique

$uniquesubcat arrray ?
  • 写回答

2条回答 默认 最新

  • douwan2664 2012-11-02 05:17
    关注

    Try set table alias like this

    $criteria2 = new CDbCriteria();
    // SELECT
    $criteria2->select = 't.USERID, t.ADID, t.ADTYPE, t.ADTITLE, t.ADDESC, t.PAGEVIEW, t.DISPPUBLISHDATE, subcat.SUBCATID';
    // JOIN
    $criteria2->with = array('subcat','adimages');
    // WHERE
    $criteria2->compare('t.STATUS', 1);
    $criteria2->addCondition('t.DISPPUBLISHDATE >= CURRENT_DATE - 3');
    $criteria2->addCondition('t.EXPIRYDATE >= CURRENT_DATE');
    $criteria2->addCondition('t.USERID IS NOT NULL');
    $criteria2->addCondition('EXISTS  (select 1 FROM {{ADIMAGES}} as ADIMAGES WHERE ADIMAGES.ADID = t.ADID)');
    
    $criteria2->addInCondition('t.USERID', $uniqueuser);
    $criteria2->addInCondition('t.ADID', $uniquead);
    $criteria2->addInCondition('subcat.SUBCATID', $uniquesubcat);     
    // ORDER
    $criteria2->order = 't.PAGEVIEW DESC, t.PUBLISHDATE DESC';
    // LIMIT
    $criteria2->limit = 4;
    
    $result2 = $this->findAll($criteria2);
    return $result2;
    
    评论

报告相同问题?

悬赏问题

  • ¥15 微带串馈天线阵列每个阵元宽度计算
  • ¥15 关于无人驾驶的航向角
  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥30 BC260Y用MQTT向阿里云发布主题消息一直错误
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 Centos / PETGEM
  • ¥15 划分vlan后不通了