Связанные поля нескольких таблиц

diversia

Новичок
Добрый день! Есть 3 таблицы:

user
id | name | id_country | id_city | ...
country
id | name | ...
city
id | name | ...

Использую LEFT JOIN. Проблема в том, что имеется совпадение имен полей по таблицам (name). Возможно ли не изменяя имена полей вывести значения данных полей? Если да, как правильно определить переменную в PHP, чтобы вывести ее значение (для определенной таблицы), например:
$row['user.name'] , $row['country.name'] ?
 

diversia

Новичок
Предположим, alias_name. Вопрос по выводу значения переменной в PHP остался неясен, поэтому и пост.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
t0.name as user_name, t1.name as city_name, t2.name as country_name не?

Ну и в php вывести как $var['user_name'];
 

diversia

Новичок
Спасибо, буду пробовать. А вообще, при проектировании БД пересечение (дубликаты) имен полей это нормальная ситуация? Или же таблицы нужно приводить к виду:
user
id_user | user_name | user_email | user_date | id_country | id_city | ...
country
id_country | country_name | ...
city
id_city | city_name | ...
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
нормальная. нет
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Ну алиасы - вполне нормальное дело. Главное называть поля нормальными именами, вещественными. А не a/b/c и так далее.
 

флоппик

promotor fidei
Команда форума
Партнер клуба
можно сохранить имена одной из таблиц — SELECT t1.*, t2.field1 as alias1, t2.field2 as alias2 ...
 

SiZE

Новичок
Я практикую создание имен полей с префиксом по имени таблицы, например:
news → n_*
members → m_*
logs → l_*

соответственно при выводе редко бывают пересечения имен
 

Dovg

Продвинутый новичок
По моему глубокому убеждению указанная топикстаретером проблема чуть более, чем выдумана.
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Не могу представить себе ситуацию когда мне нужны __все__ поля из __всех__ связанных таблиц.
 

~WR~

Новичок
Кстати я знал одного дядьку, который использовал этот способ.
В начале все было зашибись, но потом таблиц в базе стало примерно 500. Тут-то эта схема и накрылась. Он запутался в собственных сокращениях.
 

SiZE

Новичок
Смысл давать алиасы, если ты их не используешь =)
Мне не приходится думать о пересечении имен полей в таблицах, например в случае выбора по маске. :) Т.е. не думать об этом: n.*, m.*, n.id as news_id в кажом запросе где я это использую. В моем случае я знаю, что во всем проекте n_id у меня ID новости и то, что я не забуду в каком запросе какой алиас я прописал.

Ну и на самом деле на скорость это не влияет, а влияет лишь на то, что мне так удобней. =)
 
Сверху