我想使用Doctrine" Query Builder"将SQL请求转换为DQL。
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 :(得分:0)
您可以为上面的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
我没有看到在子选择中使用LIMIT的逻辑。
如果您已将实体中的parent_id关联定义为childs
,并且我猜ManyToOne
为单向关系,并且doctrine将执行连接部分,那么您将不必使用{ {1}}子句和你的DQL将变得像
WITH