2011-01-27 3 views
1

Я выбираю данные из двух таблиц. И обе эти таблицы имеют столбец ID, и мне нужны оба столбца ID, возвращенные после выполнения Query. Есть ли способ изменить имя столбца ID (со второй таблицы, которую я выбираю), на что-то еще, используя AS?MySQL: SELECT * FROM table1, table2 .... column1 AS newColumnName

Я думаю, что-то вроде этого:

SELECT * FROM table1, table2 WHERE table2.id AS newAlias 

Могу ли я использовать WHERE заявление, как это?

+0

возможно дубликат [PHP & MYSQL: Как разрешить неоднозначные имена столбцов в РЕГИСТРИРУЙТЕСЬ операции?] (Http: // stackoverflow.com/questions/431391/php-mysql-how-to-resolve-ambiguous-column-names-in-join-operation) –

ответ

6

Необходимо указать псевдоним для столбца в списке выбора. например:

SELECT a.id AS table1_id, b.id AS table2_id, .... 
    FROM table1 a, table2 b 
WHERE <YOUR CRITERIA> 
+0

Да, но что, если мне нужны все столбцы из обеих таблиц? Я бы получил довольно длинный и запутанный запрос, если бы мне пришлось называть каждый столбец из таблиц. Запрос также будет нарушен, если я захочу добавить/переименовать столбец. – qwerty

+0

@qwerty. Напротив, запрос будет продолжать работать ** (т. Е. Возвращать тот же набор результатов ...), если вы должны добавить столбец. Переименование столбцов никуда не годится, если вы хотите избежать нарушения существующих запросов. –

+0

Ну, они продолжали работать, но мне пришлось бы добавить новый столбец вручную. Верный? Я хочу избежать этого, если это возможно. – qwerty

1

@qwerty

Вы можете написать:

SELECT a.*,a.id AS table1_id, b.*,b.id AS table2_id, .... 
FROM table1 a, table2 b 
WHERE <YOUR CRITERIA>