Symfony2形式&gt; <实体字段类型>查询构建器&gt; subselect可能吗?

时间:2013-04-11 09:48:31

标签: forms symfony doctrine-orm query-builder formbuilder

我有一个带有实体字段类型的表单 在这个实体字段类型中,我有一个查询构建器,因为我只想选择一些记录 但是我想在这个查询构建器中做一个子选择,我不确定这是正确的方法:

'query_builder' => function(EntityRepositorty $er) {
    $subq = $er->createQueryBuilder()        
    //cannot select other entity here?

    return $er->createQueryBuilder('a')
    ->leftJoin($subq)
    ->where('blah blah')
}

有没有人遇到过这个问题,他们的解决方案是什么?

左连接看起来类似于:

LEFT JOIN (select * from `table_c` order by date desc) as c on c.status_id = a.id

1 个答案:

答案 0 :(得分:1)

您的描述表明表c作为一对多关系映射到表a上。你应该只使用正常的学说联接:

'query_builder' => function(EntityRepository $er) {
    return $er->createQueryBuilder('c')
    ->join('c.a', 'a');
}

您需要使用普通联接,因为左联接将为您提供表c中的所有内容,无论它是否与a相关。