我正在使用Symfony 3.4,但在查询时遇到了一些麻烦,我会尽力解释清楚!
我有3个实体,Website
,Mission
,Gain
和:
Website OneToMany Mission
Mission OneToMany Gain
我在price
实体中有一个Gain
字段
我需要为每个网站的每个SUM
price
设置Gain
的值,但就我而言,它不起作用。
在我的示例中,我有:
Website
Mission
(链接到Website
)Gain
(链接到Mission
)有1个Mission
,其值分别为price
:100、200、300 这是我的查询(w是网站,m是任务,g是收益):
$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。
您知道我如何得到正确的结果吗?
谢谢!