Есть одна таблица
purchase
-
id, name, provider, price, date
Необходимо выбрать по namе всех provider (уникальных) с последней ценой поставки товара (name)
Выбрать всех поставщиков, конечно, не проблема:
$this->entityManager->createQuery('SELECT DISTINCT p.provider, FROM App\Entity\Purchase p WHERE p.name = ?1')
->setParameter('1', $category["name"]);
Далее. мне было получить последнюю цену от этого поставщика. Если я просто добавлю p.price, то у меня получится куча неуникальных массивов:
Скриншот фрагмента кода удалён модератором.
$this->entityManager->createQuery('SELECT DISTINCT p.provider, p.price FROM App\Entity\Purchase p WHERE p.name = ?1')
->setParameter('1', $category["name"]);
Наверное, можно было бы решить это с помощью ORDER BY date LIMIT 1, но в doctrine, как я понял, сделать это невозможно (или я не правильно думаю).
Как можно построить запрос, чтобы получилось как на картинке? Какой-нибудь MAX или еще что-нибудь? Записи в таблицу вставляются не в хронологическом порядке, т.е. последняя дата может быть не последней записью в таблице