子查询主义无法找到课程

时间:2010-05-03 22:03:11

标签: symfony1 doctrine

我正在尝试创建一个像这样的查询:

$q = Doctrine_Query::create()
        ->select('p.nombre')
        ->addSelect('(select count(*) from alojamiento a left join                      
                localidad l on a.localidad_id=l.id where p.id=l.provincia_id and        
                a.activo=true)')
        ->from('provincia p');

但它失败了:错误500,找不到类a。

并且:

$q = Doctrine_Query::create()
        ->select('nombre')
        ->addSelect('(select count(*) from alojamiento left join localidad on   
                alojamiento.localidad_id=localidad.id where                                     
                provincia.id=localidad.provincia_id and alojamiento.activo=true)')
        ->from('provincia');

导致:SQLSTATE [42S22]:未找到列:1054'on子句'中的未知列'a.localidad_id'。

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

假设您在学说模型中配置了alojamiento.localidad关系,您可以尝试这样做:

$q = Doctrine_Query::create()
             ->select('p.nombre')
             ->addSelect('(select count(*) from Alojamiento a 
                          left join a.Localidad l
                          where Provincia.id = Localidad.provincia_id 
                          and l.activo=true) as count')
             ->from('Provincia p');