Мне действительно нужно включать имена таблиц или AS в JOINS, если столбцы разные? - PullRequest
0 голосов
/ 25 января 2012

Я заметил, что в другой день я могу присоединиться к MySQL так же легко,

 SELECT peeps, persons, friends FROM tablea JOIN tableb USING (id) WHERE id = ?

Вместо использования

 SELECT a.peeps, a.persons, b.friends FROM tablea a JOIN tableb b USING (id) WHERE id = ?

Это работает только при отсутствии соответствующих имен столбцов, почему я должен делать второе, а не первое?

Ответы [ 3 ]

2 голосов
/ 25 января 2012

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

Подумайте о чувствах бедного парня (или девушки), который должен идти за вами, и попытаться выяснить, чего вы пытались достичь и в каких таблицах находится каждый столбец. Явное указание источника столбца позволяет взглянуть на запрос и получить эту информацию без глубокого знания схемы.

1 голос
/ 25 января 2012

Запрос 1 будет работать (пока нет двусмысленных имен столбцов).

Запрос 2 будет

  • Проясниться
  • быть более понятным (подумайте о человеке, который не знает схему базы данных наизусть)
  • пережить добавление неоднозначного имени столбца в одну из таблиц

Итак, не ленитесь из-за этих жалких немногих сохраненных нажатий клавиш.

0 голосов
/ 25 января 2012

Нет необходимости, если у вас нет повторяющихся имен столбцов. Если вы это сделаете, запрос не удастся.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...