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());
如果我遗漏了什么,请告诉我