Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.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/0/amazon-s3/2.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 查询中的Symfony 1条令查询_Php_Mysql_Doctrine_Symfony 1.4 - Fatal编程技术网

Php 查询中的Symfony 1条令查询

Php 查询中的Symfony 1条令查询,php,mysql,doctrine,symfony-1.4,Php,Mysql,Doctrine,Symfony 1.4,我需要编写两个嵌套查询,如下所示: SELECT * from table1 t1 WHERE t1.value1 = 5 AND t1.id IN ( SELECT t2.id FROM t2 LEFT JOIN t3 ON t2.id = t3.t2_id WHERE .... ) 问题是Query1和嵌套查询Query2是条令查询对象,因此如果我这样做: $q1->where('t1.id IN ('.$q2->getSqlQuery().')', $q2->get

我需要编写两个嵌套查询,如下所示:

SELECT * from table1 t1 WHERE t1.value1 = 5 AND t1.id IN (
  SELECT t2.id FROM t2 LEFT JOIN t3 ON t2.id = t3.t2_id WHERE ....
)
问题是Query1和嵌套查询Query2是条令查询对象,因此如果我这样做:

$q1->where('t1.id IN ('.$q2->getSqlQuery().')', $q2->getFlattenedParams()) 
它不起作用,因为组件名称需要与定义匹配

$q1->getSqlQuery()
返回实际的表名,$q1->where需要schema.yml中定义的t2和t3组件名


那么,我如何实现所需的查询(无需运行两个单独的查询并使用PHP从$q2的结果生成where in数组)。

到目前为止,这对我来说是可行的:

$q1->where('t1.id IN ('.$q2->getDql().')', $q2->getFlattenedParams());
如果我遗漏了什么,请告诉我