Doctrine 返回不同数组中的连接查询

Doctrine returning join query in different arrays

$query = $this->createQueryBuilder('p');
$query
    ->select('s', 'p')
    ->innerJoin(
        'test\Entity\ProductQuantity',
        's',
        \Doctrine\ORM\Query\Expr\Join::WITH,
        'p.sku = s.sku'
    )
    ->orderBy('p.productId', 'DESC');

return $query->getQuery()->getResult();

这个查询必须 return 2 个表的结果,我得到的是:

result = array(
[0] => 'table1',
[1]=> 'table2',
[2] => 'table1',
[3]=> 'table2',
)

为什么我在 2 个数组中得到 2 个表?这是连接查询,它必须在 1 个数组中,如何合并 1 个数组中的连接查询结果并得到:

result = array(
[0] => 'table1table2',
[1] => 'table1table2',
)

解决方案添加到 select 需要的字段,然后结果是 1 个数组

    $query = $this->createQueryBuilder('p');
    $query
        ->select('p.sku', 's.quantity', 'p.priceAmount')
        ->innerJoin(
            'LeosEbayGateway\Entity\ProductQuantity',
            's',
            \Doctrine\ORM\Query\Expr\Join::WITH,
            'p.sku = s.sku'
        )
        ->orderBy('p.productId', 'DESC');

    return $query->getQuery()->getResult();

结果:

result = array(
[0] => 'table1table2',
[1] => 'table1table2',
)

您可以使用数组形式获取结果:

$query->getQuery()->getScalarResult();