2010-05-03 67 views
2

我試圖創建類似這樣的查詢:子查詢主義找不到

$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,找不到類。

和:

$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'); 

導致: '關於條款' 在1054未知列 'a.localidad_id':SQLSTATE [42S22]:列未找到。

任何幫助將不勝感激!

+2

能否請您格式化代碼爲** **代碼? – develop7 2010-05-03 22:09:09

+0

格式化你的代碼:-)和PS,歡迎來到SO :-) – richsage 2010-05-04 13:59:17

回答

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');