我正在通过Doctrine的QueryBuilder从多个表中获取记录。
查询工作正常,但是是否可以将源表的名称添加到每个结果中?
查询的构建方式如下:
$queryBuilder
->addSelect('table1.id')
->addSelect('table2.id')
->from('my_table_1', 'table1')
->from('my_table_2', 'table2')
->where($sameCondition)
->getQuery()
->execute(null, Query::HYDRATE_ARRAY);
编辑:该代码示例仅用于说明。由于可以有许多表和不同的字段名称,因此查询实际上是使用循环构建的。这使得对字段使用标识别名不太合适。
结果应包含相应的表名,如下所示:
[
['id' => '2', 'table' => 'table1'],
['id' => '2', 'table' => 'table2'],
['id' => '5', 'table' => 'table1'],
['id' => '1', 'table' => 'table2'],
]
(排序无所谓。)