【发布时间】:2011-12-19 15:35:57
【问题描述】:
我有这张桌子:
订阅者
id | name |
---+-------+
1 | Hill |
2 | Sam |
3 | Joe |
subscribers_years
subscriber_id | year |
--------------+-------+
1 | 2009 |
1 | 2010 |
1 | 2011 |
2 | 2009 |
2 | 2010 |
3 | 2010 |
我想仅使用最大值为 x 的记录进行高级搜索。 如果 x = 2010 结果查询必须是:Sam 和 Joe!
我试试这个:
$query = $this->createQuery('su')
->select('su.id, su.name)
->addWhere(
'(SELECT MAX(year) AS maxYear FROM `subscribers_years` WHERE `subscriber_id`=`su.id`) = ?',
2010
);
但我收到消息错误:消息:找不到课程subscribers_years
我应该如何正确编写查询?
解决方案
$query->addWhere('(SELECT MAX(year) AS maxYear FROM SubscriberYear WHERE subscriber_id=su.id) = ?', 2010 );
我的错误是我没有使用类名Doctrine作为From,而是使用了表名mysql! :S
【问题讨论】:
标签: doctrine doctrine-1.2