加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 内在的教义子查询

发布时间:2020-12-13 14:03:01 所属栏目:PHP教程 来源:网络整理
导读:我在 MySql中有功能查询: select t.won,e.etot,s.username,s.country,r.points,r.rank FROM sf_guard_user s INNER JOIN marks r ON r.user_id = s.id inner join (select t.user_id,count(t.user_id)as won from topper t group by t.user_id) t on t.user
我在 MySql中有功能查询:
select t.won,e.etot,s.username,s.country,r.points,r.rank FROM sf_guard_user s 
INNER JOIN marks r ON r.user_id = s.id 
inner join (select t.user_id,count(t.user_id)as won from topper t group by t.user_id) t on t.user_id=s.id
inner join (select e.user_id,count(e.user_id)as etot from exams e group by e.user_id) e on e.user_id=s.id
ORDER BY r.rank asc

我在sfGuardUserTable类中写了原则代码:

$q= $this->createQuery('u');

        $wq =$q->createSubquery()
         ->select('t.user_id,count(t.user_id) won')
         ->from('Topper t')
         ->groupBy('t.user_id');

        $dq = $q->createSubquery()
         ->select('e.user_id,count(e.user_id) etot')
         ->from('Exams d')
         ->groupBy('d.user_id');

        $q->select(' t1.won,e1.dtot,u.username,u.country,r.rank')
         ->innerJoin ('u.Marks r ON r.user_id = u.id')
         ->innerJoin ('u.('.$wq->getDql().') t1 on t1.user_id=u.id')
         ->innerJoin ('u.'.$dq->getDql().' e1 on e1.user_id=u.id')
         ->orderBy('r.rank asc');

        //echo $q->getSql();
        return $q;

它是给错误找不到类SELECT :(请帮助我,谢谢提前.

我试图直接执行我的自定义查询由Doctrine Row Sql查询选项及其工作:)
我喜欢在这里分享:
$q = new Doctrine_RawSql();
        $q->select('{t.won},{e.etot},{s.username},{s.country},{r.marks},{r.ranks}');
        $q->from('sf_Guard_User s INNER JOIN marks r ON r.user_id = s.id inner join (select t.id,t.user_id,count(t.user_id)as won from topper t group by t.user_id) t on t.user_id=s.id inner join (select d.id,d.user_id,count(e.user_id)as etot from exams e group by e.user_id) e on e.user_id=s.id ORDER BY r.rank asc');
        $q->addComponent('s','sfGuardUser s');
        $q->addComponent('r','s.Marks r');
        $q->addComponent('t','s.Topper t');
        $q->addComponent('e','s.Exams e');
        return $q;

为更多的帮助read it.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读