【问题标题】:Symfony2 Form > Entity Field Type > query builder > subselect possible?Symfony2 表单 > 实体字段类型 > 查询构建器 > 可能的子选择?
【发布时间】:2013-04-11 09:48:31
【问题描述】:

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

'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

【问题讨论】:

  • 您真的需要添加子查询吗?你们两个实体之间的关系如何?
  • 你为什么不用实体之间的正常关系来做这个?
  • 我需要从 table_c 获取最新的值。进一步解释?

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


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2013-10-07
    • 1970-01-01
    • 1970-01-01
    • 2014-04-15
    • 1970-01-01
    • 2012-07-09
    • 1970-01-01
    • 2015-02-10
    • 1970-01-01
    相关资源
    最近更新 更多