2017-09-06 14 views
1

"クエリー・ビルダー"コンバートSQL(教義)

SELECT e1.id, e1.name, (SELECT COUNT() FROM (SELECT id FROM element e2 WHERE 
     e2.parent_id = e1.id LIMIT 1000) as e3 ) 

FROM element e1 
WHERE 
    e1.parent_id = xxx 
AND 
    e1.element_type_id = xxx 

は、それは可能ですか?

答えて

0

あなたは、私が選択サブ​​でLIMITを使用してのロジックが表示されない

以下
SELECT e1.id, e1.name, COUNT(*) somealias 
FROM YourBundle:Element e1 
LEFT JOIN YourBundle:Element e2 WITH e1.id = e2.parent_id 
WHERE e1.parent_id = xxx 
AND e1.element_type_id = xxx 
GROUP BY e1.id 

として上記のSQLのためにDQLを書くことができます。

あなたが childsとしてエンティティにPARENT_IDの関連付けを定義した場合、それは私はあなたが WITH句を使用する必要はありませんので、一部の参加行います一方向の関係や教義のため ManyToOneを推測して容易になるだろう

とあなたのDQLますようになります

SELECT e1.id, e1.name, COUNT(*) somealias 
FROM YourBundle:Element e1 
LEFT JOIN e1.childs e2 
WHERE e1.parent_id = xxx 
AND e1.element_type_id = xxx 
GROUP BY e1.id