查询中的Symfony 1 Doctrine查询

时间:2016-03-06 12:47:51

标签: php mysql doctrine symfony-1.4

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

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是doctrine查询对象,所以如果我这样做:

$q1->where('t1.id IN ('.$q2->getSqlQuery().')', $q2->getFlattenedParams()) 

它不起作用,因为组件名称需要匹配定义;

$q1->getSqlQuery()

返回实际的表名,而$ q1-> where期望在schema.yml中定义的t2和t3的组件名称

那么我怎样才能实现所需的查询(不运行2个单独的查询并使用PHP从$ q2的结果中生成数组中的where)。

1 个答案:

答案 0 :(得分:0)

到目前为止,这对我有用:

$q1->where('t1.id IN ('.$q2->getDql().')', $q2->getFlattenedParams());

如果我遗失了某些内容,请告诉我