我的程序使用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
没有任何区别。