Я разрабатываю приложение с Symfony2 и Doctrine, и у меня есть таблица с именем status , где я храню книги о местонахождении и датах, например:
ID | Book | Date | Location
------------------------------------------------
1 | Book_1 | 2011-08-29 | Home
2 | Book_1 | 2011-08-30 | Office
3 | Book_1 | 2011-09-02 | Friend's House
4 | Book_2 | 2011-09-02 | Office
5 | Book_2 | 2011-09-04 | Home
Запись состояния с самой последней датой представляет текущее (или последнее известное) местоположение этой книги. В приведенном выше примере Book_1 в настоящее время находится в «Доме друга», а Book_2 находится в «Доме».
Следующий код получает любые записи, которые в некоторый момент имели местоположение "Home":
$em = $this->getEntityManager();
$query = $em->createQuery('SELECT s FROM myBookTestBundle:Status s WHERE s.location=:x')->setParameter('x', 'Home');
$status = $query->getResult();
Вместо этого я хотел бы выбрать только те книги, чье местоположение current соответствует "Home". В приведенном выше примере это будет только ID записи = 5 (Book_2).
Есть ли способ сделать это легко с помощью DQL?
Любая помощь очень ценится.
Спасибо,
Ральф