Mysql Symfony2原则嵌套联接关系
我想对我的查询执行以下操作:Mysql Symfony2原则嵌套联接关系,mysql,symfony,doctrine,dql,Mysql,Symfony,Doctrine,Dql,我想对我的查询执行以下操作: SELECT * FROM `Parent` P LEFT JOIN `child` C ON P.id = C.parentID LEFT JOIN `childOfChild` CoC ON C.id = CoC.cID WHERE P.id = 1 我尝试了这个QueryBuilder,但不起作用 $query = $this->getEntityManager() ->createQueryBuilder() ->sel
SELECT * FROM `Parent` P
LEFT JOIN `child` C ON P.id = C.parentID
LEFT JOIN `childOfChild` CoC ON C.id = CoC.cID
WHERE P.id = 1
我尝试了这个QueryBuilder,但不起作用
$query = $this->getEntityManager()
->createQueryBuilder()
->select('P,C,CoC')
->from('DspAppsBundle:Parent', 'P')
->leftJoin('P.child', 'C')
->leftJoin('C.childOfChild', 'CoC')
->where('P.id = 1')
->getQuery();
有人能告诉我,我是如何做到这一点的吗?您需要执行查询才能得到结果
$query = $this->getEntityManager()
->createQueryBuilder()
->select('P,C,CoC')
->from('DspAppsBundle:Parent', 'P')
->leftJoin('P.child', 'C')
->leftJoin('C.childOfChild', 'CoC')
->where('P.id = 1')
->getQuery();
$result = $query->execute();
您在
$result
中得到了什么?您可以尝试这样的方法(您可以用getSingleResult()替换getResult(),或者任何适合您的方法):
我确实
return$query->getArrayResult()代码>但不起作用。结果如何?你得到空值了吗?是的。谢谢为我工作。对不起,请慢一点@皮尤辛哈很有趣。不用担心!:)
$query = $this->getEntityManager()
->createQueryBuilder()
->select('P,C,CoC')
->from('DspAppsBundle:Parent', 'P')
->leftJoin('DspAppsBundle:Child', 'C', 'WITH', 'P.id = C.parentId')
->leftJoin('DspAppsBundle:ChildOfChild', 'CoC', 'WITH', 'C.id = CoC.cId')
->where('P.id = 1')
->getQuery()
->getResult();