2015-10-20 3 views
2

В общем, есть ли разница в наборе результатов или выполнения запросов между:В чем разница между совместным использованием и объединением?

SELECT * FROM tableA JOIN tableB USING (id); 

и

SELECT * FROM tableA ta JOIN tableB tb ON (ta.id = tb.id); 

Если да, то в чем разница?

Плюсы/минусы использовать один над другим?

ответ

8

Когда вы говорите USING, то столбцы обрабатываются по-разному в запросе:

  • Обе таблицы должны иметь одинаковые столбцы и имена для join ключей. (Я думаю, что это хорошая практика в любом случае, но это требует USING.)
  • Ключи, используемые для соединения, могут использоваться только в псевдониме таблицы в остальной части запроса.
  • Если вы делаете SELECT *, ключи соединения возвращаются только один раз.
+0

«Обе таблицы должны иметь одинаковые столбцы и имена». Вы имеете в виду те же имена столбцов, которые являются ключами соединения, не так ли? –

+0

@ ЕгорРогов. , , Да. Исправлена. –

Смежные вопросы