У меня есть эти таблицы:
подписчиков
id | name |
---+-------+
1 | Hill |
2 | Sam |
3 | Joe |
подписчиков_годов
subscriber_id | year |
--------------+-------+
1 | 2009 |
1 | 2010 |
1 | 2011 |
2 | 2009 |
2 | 2010 |
3 | 2010 |
Я хочу выполнить расширенный поиск, используя только записикоторые имеют максимум как х.Если x = 2010 Результаты запроса должны быть: Сэм и Джо!
Я пытаюсь это:
$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