2012-04-05 16 views
13

Jak mogę zaimplementować następujące zapytanie z Query Builder?Zapytanie z EXISTS dla Doctrine Symfony2

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

Część istnieć bez kontroli jest łatwe, ale czy istnieje sposób wdrożyć EXISTS?

Odpowiedz

22

albo trzeba użyć budowniczych dwa zapytania:

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

lub użyj DQL bezpośrednio:

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

Musisz znaleźć więcej przykładów w docs: http://doctrine-orm.readthedocs.org/en/latest/reference/query-builder.html

+0

Dziękujemy! tego właśnie szukałem :) – ArVan

+5

Czy można powiązać parametry w podzapytaniu? (Twój link nie działa) – Fractaliste

Powiązane problemy