Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 原则QueryBuilder-聚合函数中的嵌套select语句_Php_Sql_Doctrine_Query Builder - Fatal编程技术网

Php 原则QueryBuilder-聚合函数中的嵌套select语句

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执行时,我

我有一个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执行时,我得到以下错误:

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]

你不能选择分组中没有的列。我编辑了这个例子,它是一个打字错误,因为我只是为了这个问题而编的。