2012-04-05 39 views
13

クエリビルダで次のクエリを実装するにはどうすればよいですか?DoctrineのためのEXISTSでのクエリSymfony2

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

が存在チェックのない部分は簡単ですが、EXISTSを実装する方法はありますか?

答えて

22

次のいずれかの2つのクエリビルダを使用する必要があります。

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

または直接DQLを使用します。

$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

関連する問題