Sql symfony3中的右连接查询
我想将下面的sql查询转换为symfony中的条令查询Sql symfony3中的右连接查询,sql,join,doctrine-orm,symfony,right-join,Sql,Join,Doctrine Orm,Symfony,Right Join,我想将下面的sql查询转换为symfony中的条令查询 select p.name,p.id,sum(t.amount) as bal from transactions t right join processors p on t.processor_id=p.id where user_id=18 or user_id is null group by p.id 上面的代码通过为每个处理器的用户汇总每个事务的金额,从事务表中获取余额 结果: 处理器1------43 处理器2------1
select p.name,p.id,sum(t.amount) as bal from transactions t right join processors p on t.processor_id=p.id where user_id=18 or user_id is null group by p.id
上面的代码通过为每个处理器的用户汇总每个事务的金额,从事务表中获取余额
结果:
处理器1------43
处理器2------12
处理器3------空
处理器4------空
处理器5------空
我用dql尝试的查询是:
$sql = $procRepo->createQueryBuilder('t');
$sql->select('p.name');
$sql->leftJoin('t.processorId','p');
$sql->addSelect('sum(t.amount) as bal');
$sql->groupBy('p.id');
$sql->orderBy('p.name')->getQuery()->getResult();
结果:
处理器1------43
处理器2------12
所以我的问题是我还想得到空行
注意:我正在使用Symfony 3
有人能帮忙吗?您需要反转
join
语句以获取所有处理器:
$sql = $procRepo->createQueryBuilder('p');
$sql->select('p.name', 'sum(t.amount) as bal');
$sql->leftJoin('p.transaction', 't');
$sql->groupBy('p.id');
$result = $sql->orderBy('p.name')->getQuery()->getResult();
此查询必须在处理程序或存储库中进行
当我这么做的时候,我得到了这个<代码>[Semantic Error]第0行,第80列靠近“t GROUP BY p.id”:错误:Class ModelBundle\Entity\Processor没有名为transaction的关联
是否需要向processors entityYes添加任何映射信息,这不是关系的确切名称,请,在实际代码中解决这个问题。实际上我有两个实体:Processor和Transaction事务中的列“Processor_id”有一个多通映射。Processor实体没有任何到Transactionwell的映射,请使用
rightJoin
语句在原始查询中进行测试。它工作正常,只需要一个inversedBy和mappedBy组合:)非常感谢!