0
我使用Symfony2
和FOSCommentBundle
,并且我已将comment
添加到特定实体App\MyBundle\Post
。Symfony2 + Doctrine:从2个实体中检索信息
我想要检索有关的所有App\MyBundle\Post
,并且所有指定comment
的所有信息,我的意思是,如果我有一个职位2条评论,我想它返回我到我行,例如:
P.*, 2 as nbComment
所以我也试试这个代码:
$query = $this->getEntityManager()->createQuery ('
SELECT P, COUNT(C.id) as nbComment
FROM AppMyBundle:Post P
LEFT JOIN AppMyBundle:Comment C ON C.id=CONCAT('post_',P.id)
GROUP BY P.id
ORDER BY P.dEvent DESC, P.dCreated DESC'
);
但我有一个错误:
[Semantical Error] line 0, col 96 near 'Com ON C.id=CONCAT("post_",P.id) WHERE': Error: Identification Variable Comment used in join path expression but was not defined before.
请帮我
感谢萨姆
好吧,我知道我不能按照文档左连接'on',但是我没有在邮件实体和评论实体之间的“物理”链接。我拥有的唯一链接是:comment.id = CONCAT('post _',post.id) – Sam 2012-01-17 09:12:26
哦。我懂了。我认为你真的应该有一个物理链接。写一个sql迁移到一个新的表结构,你将获得速度的可用性。 – greg0ire 2012-01-17 09:19:16
你是什么意思?我必须像CONCAT('mytable _',mytable.id)那样有comment_id,因为我想实例化几个实体的注释。所以我不知道我该怎么做... – Sam 2012-01-17 09:41:05