Symfony-学说与JOIN有何不同?

时间:2019-07-02 12:20:07

标签: symfony sum doctrine

我正在使用Symfony 3.4,但在查询时遇到了一些麻烦,我会尽力解释清楚!

我有3个实体,WebsiteMissionGain和:

Website OneToMany Mission
Mission OneToMany Gain

我在price实体中有一个Gain字段

我需要为每个网站的每个SUM price设置Gain的值,但就我而言,它不起作用。

在我的示例中,我有:

  • 1 Website
  • 3 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。

您知道我如何得到正确的结果吗?

谢谢!

0 个答案:

没有答案