2012-04-05 3 views
13

쿼리 작성기로 다음 쿼리를 어떻게 구현할 수 있습니까?Doctrine Symfony2에 대한 EXISTS 쿼리

SELECT * 
FROM t 
WHERE t.status = 1 
    OR EXISTS(SELECT * 
       FROM r 
       WHERE r.t_id = t.id 
        AND r.status = 1 
      ) 

존재의 확인이없는 부분은 간단하지만, EXISTS을 구현하는 방법은 무엇입니까?

$queryBuilder->expr()->exists($subQueryBuilder->getDql()); 

을 직접 DQL을 사용합니다 :

답변

22

당신이 중 하나는 두 개의 쿼리 빌더를 사용할 필요가

$queryBuilder->expr()->exists('SELECT * 
    FROM r 
    WHERE r.t_id = t.id 
    AND r.status = 1' 
); 

당신은 문서에 더 많은 예제를 찾을 수 있습니다 : http://doctrine-orm.readthedocs.org/en/latest/reference/query-builder.html

+0

감사합니다! 이것은 내가 무엇을 찾고 있었는지 :) – ArVan

+5

하위 쿼리에서 매개 변수를 바인딩 할 수 있습니까? (귀하의 링크가 죽었습니다) – Fractaliste