Я получаю записи из нескольких таблиц через QueryBuilder Doctrine.
Запрос работает нормально, но возможно ли добавить имя исходной таблицы к каждому результату?
Вот как строится запрос:
$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'],
]
(Сортировка не имеет значения.)
Задача ещё не решена.
Других решений пока нет …