$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();
此查询必须返回2个表的结果,我得到的结果:
result = array(
[0] => 'table1',
[1]=> 'table2',
[2] => 'table1',
[3]=> 'table2',
)
为什么我在2个数组中得到2个表?这是连接查询,它必须在1个数组中,如何在1个数组中合并连接查询的结果并得到:
result = array(
[0] => 'table1table2',
[1] => 'table1table2',
)
答案 0 :(得分:7)
您可以使用以下方法将结果作为数组获取:
$query->getQuery()->getScalarResult();
答案 1 :(得分:3)
添加选择所需字段的解决方案,然后结果是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',
)