php - 内连接中的 Doctrine 子查询

标签 php symfony1 doctrine

我在 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 类中编写了 Doctrine 代码:
$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.points,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 .

关于php - 内连接中的 Doctrine 子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2011542/

相关文章:

php - mysql - 更新列中的值,同时使所有其他值均为 false

php - 我的 PHP 电话簿 CRUD 项目出现错误

javascript - 按类名比较表中的值

php - Symfony - 更改后验证器的错误消息而不覆盖其他验证器?

php - 如何在 Symfony 中向电子邮件添加附件?

file-upload - Symfony 文件上传 - "Array"存储在数据库中而不是实际文件名

php - 查询 SQL 获取用户名并返回密码

php - Symfony 1.3.6 - javascript 弹出窗口 - 如何?

php - 创建一对多映射,其中许多可以是不同的对象类型

symfony - 如何覆盖/扩展 Symfony2 中的默认 Doctrine EntityManager 类?