Php 原则QueryBuilder-聚合函数中的嵌套select语句
我有一个SQL查询,它在聚合函数(SUM)中使用嵌套的SELECT,并且执行时没有错误,但我似乎无法使用Doctrine QueryBuilder使其正常工作 查询基本上简化为:Php 原则QueryBuilder-聚合函数中的嵌套select语句,php,sql,doctrine,query-builder,Php,Sql,Doctrine,Query Builder,我有一个SQL查询,它在聚合函数(SUM)中使用嵌套的SELECT,并且执行时没有错误,但我似乎无法使用Doctrine QueryBuilder使其正常工作 查询基本上简化为: SELECT table_1.group, SUM((SELECT amount FROM table_2 WHERE table_2.table_1_id = table_1.id)) FROM table_1 GROUP BY table_1.group 当使用Doctrine的queryBuilder执行时,我
SELECT table_1.group, SUM((SELECT amount FROM table_2 WHERE table_2.table_1_id = table_1.id))
FROM table_1
GROUP BY table_1.group
当使用Doctrine的queryBuilder执行时,我得到以下错误:
exceptionMessage:“[Syntax Error]第0行,第242列:错误:预期为已知函数,在“vendor/doctrine/orm/lib/doctrine/orm/Query/QueryException.php:54”中获得“SELECT”
一种解决方案是不使用queryBuilder,但实际代码要复杂得多,这意味着我必须在代码中进行大量重构
是否有人想出了一些可以欺骗Doctrine queryBuilder解析器的方法来解析它
谢谢。用这个:
SELECT t1.[group], SUM(amount)
FROM table_1 as t1
left join table_2 as t2 on t1.table_1_id = t2.table_1_id
GROUP BY t1.[group]
你不能选择分组中没有的列。我编辑了这个例子,它是一个打字错误,因为我只是为了这个问题而编的。