Следующий код будет работать для выбора данных из двух таблиц:
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
Однако такие сценарии далеки от нормы в моем опыте.
Может ли кто-нибудь объяснить мне, почему язык разработан так, что мне приходится принимать это, казалось бы, произвольное решение в моем коде?