Неоднозначное имя столбца Ошибка SQL с INNER JOIN: Почему?

Следующий код будет работать для выбора данных из двух таблиц:

SELECT t1.foo, t2.bar FROM TABLE1 t1 INNER JOIN TABLE2 t2 ON t1.foo=t2.foo

Я мог бы так же легко написано

SELECT t2.foo, t2.bar FROM TABLE1 t1 INNER JOIN TABLE2 t2 ON t1.foo=t2.foo

t1.foo или t2.foo : шесть из одного или полдюжины другого. Почему не просто foo ?

Я удивлялся, почему не • SQL-сервер просто автоматически возвращает данные без указания той или иной таблицы, поскольку выбор является совершенно произвольным (насколько я могу судить).

Я могу составить сценарий, в котором вам нужно будет указать таблицу, такие как

SELECT t1.foo, t2.bar FROM TABLE1 t1 INNER JOIN TABLE t2 ON t1.foo+=t2.foo

Однако, по моему опыту, такие сценарии далеки от нормы.

Может ли кто-нибудь объяснить мне, почему язык спроектирован таким образом, что я должен принимать это, казалось бы, произвольное решение в моем коде?

8
задан Lukas Eder 11 May 2011 в 15:24
поделиться