2010-06-23 2 views
1

У меня есть много таблиц MySQL с тем же именем столбца. Итак, я ищу PDO или SQL-взлома для SELECT * FROM других таблиц, которые возвратят имена таблиц в наборах результатов.FETCH_ASSOC и SELECT * FROM из двух таблиц с тем же именем столбца

Пример:

'SELECT * FROM table0, table1';

где обе таблицы имеет столбец 'имя'. Но результат FETCH_ASSOC возвращает только одно «имя» - последнее.

Результат:

echo $result["name"]; 

Wanted результат:

echo $result["table0.name"]; 
echo $result["table1.name"]; 
... 

Обратите внимание, что

  1. Я не могу переименовать столбцы DB быть уникальным
  2. Я не могу Мануалы создать псевдоним для каждого столбца (серия таблиц/столбцов)
  3. Я хочу, чтобы имя в результирующем наборе не таких чисел, как FETCH_NUM

Любые идеи? Спасибо!

+0

Что именно неправильно с выполнением двух запросов, по одному для каждой отдельной таблицы? –

ответ

1

Hack не существует, вам нужно создать псевдонимы.

1

Вы сказали, что не хотите, чтобы все столбцы были псевдонимом, потому что их слишком много, но считали ли вы только наложение на вас проблем?

SELECT 
    *, 
    table0.name AS t0name, 
    table1.name AS t1name 
FROM table0 JOIN table1 ON ... 
+0

Спасибо за частичное предложение. Я нашел другого. FETCH_NAMED возвращает проблемные столбцы в виде нумерованного массива, а другие - как обычные скаляры. [уникальное] => Val [имя] => Array ( [0] => Val [1] => Val ) Одним из способов является форматирование результирующего набора с РНР. – Cervenak

 Смежные вопросы

  • Нет связанных вопросов^_^