0

我有一个联合查询:

$query = $this
    ->getEm()
    ->getRepository("MovementHeader")
    ->createQueryBuilder('d')
    ->leftJoin('MovementDetail', 'stockmovementdetail', 'WITH', 'stockmovementdetail.movementId = d.id')

现在如何达到“运动细节”?

4

1 回答 1

2

由于您的问题非常模糊,我将笼统地回答。如果您需要更具体的信息,请提供更具体的信息。

假设运动标题有一个链接到运动细节实体的字段(我们称之为运动细节)。您可以执行以下操作:

$query = $this
    ->getEm()
    ->getRepository("MovementHeader")
    ->createQueryBuilder('mh')
    ->select('mh','md')
    ->innerJoin('mh.movementDetail','md')
    ->where(/* Now in the where cause, 
               you can select what ever 
               you want from mh or md*/)
    ->setParameters(array(/* ... */))

以下是您可以使用的一些示例:

->where('mh.id = :id') //Could used when you want to retrieve a specific header
->where('md.field IN (:list)') // Where you want to retrive all the mh 
                               // (and their md) that contains the fields

你也可以像这样做多个条件

->where('mh.field = :value AND md.otherField = :value2')

然后,您必须相应地设置参数。

获得结果后,您可以使用普通的 getter 和 setter 访问字段。

于 2013-04-08T23:42:28.053 回答