Я работаю над Symfony 3.4, и у меня возникли проблемы с запросом, я постараюсь объяснить все ясно!
У меня есть 3 объекта Website
, Mission
, Gain
с:
Website OneToMany Mission
Mission OneToMany Gain
У меня есть price
поле в Gain
сущности
Мне нужно SUM
значение price
для каждого Gain
для каждого веб-сайта, но в моем случае это не работает.
В моем примере у меня есть:
- 1
Website
- 3
Mission
(связано с Website
)
- 1
Gain
для каждого Mission
(связанного с Mission
) со значениями в price
: 100, 200, 300
Это мой запрос (с веб-сайтом, с миссией, с выигрышем):
$builder = $this->createQueryBuilder('w');
$builder->innerJoin('w.missions', 'm');
$builder->innerJoin('m.gains', 'g', 'WITH','g.user = w.user');
$builder->select('w', 'SUM(g.price) as gain');
$builder->addSelect('COUNT(distinct m) as nbMissions');
$results = $builder->getQuery()->getResult();
С этим запросом я имею в результате SUM gain
значение 1800 вместо 600.
На самом деле это хороший результат, но умноженный на количество миссий (600 * 3). В nbMissions
у меня 3.
Знаете ли вы, как я могу получить правильный результат?
Спасибо!