我有一个带有实体字段类型的表单 在这个实体字段类型中,我有一个查询构建器,因为我只想选择一些记录 但是我想在这个查询构建器中做一个子选择,我不确定这是正确的方法:
'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
答案 0 :(得分:1)
您的描述表明表c作为一对多关系映射到表a上。你应该只使用正常的学说联接:
'query_builder' => function(EntityRepository $er) {
return $er->createQueryBuilder('c')
->join('c.a', 'a');
}
您需要使用普通联接,因为左联接将为您提供表c中的所有内容,无论它是否与a相关。