如何在教义中进行子查询并将结果水合到对象中?
Posted
技术标签:
【中文标题】如何在教义中进行子查询并将结果水合到对象中?【英文标题】:How to do a subquery in doctrine and get the result hydrated to an object? 【发布时间】:2011-05-08 13:22:42 【问题描述】:我想在教义上做一个有点复杂的查询,即一个带有 group_concat 的子查询的内连接。
查看普通 SQL 中的查询:
SELECT *
FROM kinderen k
INNER JOIN
(
SELECT i.kindid, GROUP_CONCAT(DISTINCT a.periode) as periodes
FROM inschrijvingen i
INNER JOIN activiteiten a ON i.activiteitid=a.id
GROUP BY i.kindid
) p
ON k.kindid=p.kindid;
1) 我怎样才能在教义中做到这一点?换句话说,我怎样才能将这个常规 sql 翻译成 dql?
2) 我希望在生成的 Kinderen 对象中可以访问额外的属性(句点)。我怀疑这是教义的默认行为?
我在阅读文档和谷歌时找不到解决方案。
谢谢!
【问题讨论】:
【参考方案1】:似乎这在 Doctrine 2 中作为“获取连接”可用,但不确定它是否存在于 1.2 中。
http://www.doctrine-project.org/projects/orm/2.0/docs/reference/dql-doctrine-query-language/en
【讨论】:
***.com/questions/3324101/… Regular vs fetch 似乎只是性能问题。我的主要问题是如何将常规 sql 翻译成 dql,我会更新我的问题。谢谢。 我明白了......我被水化位甩了。它必须是DQL吗?在这里查看我的答案:***.com/questions/2774947/using-raw-sql-with-doctrine/… ...不确定执行方法为所有东西补水提供了什么。当我偶尔需要绕过 DQL 时,我总是选择数组数据。 感谢您的链接。但是......我有几个函数处理结果并且那些期望一个对象。当然我可以重写它们,但保持它面向对象会很好。我使用 Zend + Doctrine。 您是否在此处查看过“Doctrine_Connection”选项:doctrine-project.org/projects/orm/1.2/api ...?你可能会在那里找到一些东西。 教义链接坏了。以上是关于如何在教义中进行子查询并将结果水合到对象中?的主要内容,如果未能解决你的问题,请参考以下文章
Python-Sqlalchemy-Postgres:如何将子查询结果存储在变量中并将其用于主查询
Laravel中的MySQL子查询,如何加入查询并将第二个查询的结果作为新列添加到第一个查询?
如何在 Doctrine2 的查询结果中获取 Collection