Doctrine 将SQL转换为DQL(原则)

Doctrine 将SQL转换为DQL(原则),doctrine,dql,Doctrine,Dql,我想使用“查询生成器”将SQL请求转换为DQL 可能吗 您可以为上面的SQL编写DQL,如下所示 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


可能吗

您可以为上面的SQL编写DQL,如下所示

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
我看不出在sub select中使用LIMIT的逻辑

如果您将实体中的父id关联定义为
childs
,我想对于单向关系和条令,您将更容易使用
manytone
,这样您就不必使用
with
子句,您的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

您可以为上面的SQL编写DQL,如下所示

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
我看不出在sub select中使用LIMIT的逻辑

如果您将实体中的父id关联定义为
childs
,我想对于单向关系和条令,您将更容易使用
manytone
,这样您就不必使用
with
子句,您的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