PDO Автоматическое сглаживание при извлечении?

У меня есть следующие две таблицы:

Foo:

ID NUMBER(38) DATA VARCHAR2(10) 

бар:

 ID NUMBER(38) FOO_ID NUMBER(38) DATA VARCHAR2(10) 

При использовании PDO для запроса следующего запроса:

 SELECT * FROM foo f INNER JOIN bar b ON (f.id = b.foo_id) 

Есть ли способ вернуть все столбцы из соединения в каком-то автоматическом сглаженном формате (например, «FOO.ID», «FOO.DATA», «BAR.ID» и т. Д.), t нужно указать и псевдоним каждого отдельного столбца в запросе?

Я прочитал всю документацию по различным режимам выборки и экспериментировал с большинством флагов / опций , но по-прежнему не могу найти то, что я ищу.

Обновить:

Используя PDO::FETCH_ASSOC , столбцы из foo , по-видимому, перезаписываются столбцами из bar :

 array(3) { ["ID"]=> string(1) "1" ["DATA"]=> string(5) "bar 1" ["FOO_ID"]=> string(1) "1" } 

Используя PDO::FETCH_NUM , столбцы из foo и bar отображаются по порядку, но никак не могут идентифицировать, какие столбцы пришли из этих таблиц, за исключением того, что зная количество столбцов в каждой таблице и точный порядок этих столбцов (подвержен ошибкам ):

 array(5) { [0]=> string(1) "1" [1]=> string(5) "foo 1" [2]=> string(1) "1" [3]=> string(1) "1" [4]=> string(5) "bar 1" } 

Используя PDO::FETCH_BOTH , мы, похоже, сталкиваемся с теми же проблемами, что и PDO::FETCH_ASSOC и PDO::FETCH_NUM , и создаем ужасно непонятный набор результатов:

 array(8) { ["ID"]=> string(1) "1" [0]=> string(1) "1" ["DATA"]=> string(5) "bar 1" [1]=> string(5) "foo 1" [2]=> string(1) "1" ["FOO_ID"]=> string(1) "1" [3]=> string(1) "1" [4]=> string(5) "bar 1" } 

ИДЕАЛЬНО, результирующий набор должен выглядеть примерно так:

 array(5) { ["FOO.ID"]=> string(1) "1" ["FOO.DATA"]=> string(5) "foo 1" ["BAR.ID"]=> string(1) "1" ["BAR.FOO_ID"]=> string(1) "1" ["BAR.DATA"]=> string(5) "bar 1" }