使用HAVING()和Doctrine_Pager时出现奇怪的问题

时间:2010-10-24 16:33:28

标签: php doctrine

我的程序使用echo $ q-> getDql()生成此DQL;重新格式化以便于阅读:

SELECT o.*, t.*, COUNT(t.id) AS num_of_reservations 
FROM Property o 
LEFT JOIN o.Reservation t 
  WITH t.status=? AND 
 ( (t.start_date<=? AND t.end_date>=?) 
  OR (t.start_date>=? AND t.start_date <= ?) ) 

GROUP BY o.id 
HAVING num_of_reservations < o.nr_of_bookings

使用PHP单元测试,我得到了预期的结果。但是,当我将此Doctrine_Query发送到Doctrine_Pager时,我收到此错误:

致命错误:未捕获的异常'Doctrine_Connection_Mysql_Exception',消息'SQLSTATE [42S22]:未找到列:1054'有子句'中的未知列'p.nr_of_bookings'

我尝试了所有组合,比如使用('COUNT(t.id).....)等,不同的SELECT组合,$ q-&gt; execute()选择的所有结果都很好,除非我发送给它寻呼机。

有人可以帮我这个吗?我甚至试过

FROM Property p 
instead of 
FROM Property o

没有任何区别。

0 个答案:

没有答案