【发布时间】:2014-07-19 16:18:21
【问题描述】:
SELECT u FROM AcmeBundle:Users u
上面的语句返回用户表中的所有记录。如果我想添加其他内容,例如:
SELECT u, (
SELECT s.name
FROM AcmeBundle:Shop s
) AS shop_name
FROM AcmeBundle:Users u
执行第二个查询会引发错误,即带有键“u,shop_name”的数组的 userId 不存在。怎么了?
【问题讨论】:
-
这不是一个有效的 Doctrine 查询。如果您能说出您想要实现的目标,那将会很有帮助。
-
据我所知,这是 symfony 2 中有效的 DQL 查询。我只是想从 users 表中恢复所有内容,并从 shop 表中恢复一列 - 就像在第二个查询中一样。
-
通常只从一个字段中获取数据是没有意义的。 Doctrine 主要设计用于返回实体集合。您可以返回标量值,但不能返回标量和实体的混合。在任何情况下,您都需要加入这两个实体。两张表是什么关系?
-
一对多。我实际上需要这个来对结果进行分页(knplabs bundle)。它仅在我将整个对象传递给查询时才有效。
标签: php symfony doctrine-orm