Итак, мы переходим от Informix к серверу Sql. И я заметил, что в Informix запросы записываются таким образом:Какой синтаксис для соединения лучше?
select [col1],[col2],[col3],[col4],[col5]
from tableA, tableB
where tableA.[col1] = table.[gustavs_custom_chrome_id]
Принимая во внимание все вопросы, которые я пишу в SQL Server записываются в виде:
select [col1],[col2],[col3],[col4],[col5]
from tableA
inner join tableB on tableA.[col1] = table.[gustavs_custom_chrome_id]
Теперь, моя первая мысль была: что первый запрос плохой. Вероятно, это создает этот огромный набор записей, а затем стирает фактический набор записей, используя предложение Where. Поэтому это плохо для производительности. И это не-анси. Так что это вдвойне плохо.
Однако, после некоторых поисковых запросов, похоже, что они оба теоретически почти одинаковы. И они оба совместимы с ANSI.
Так что мои вопросы:
- ли оба запроса выполнить то же самое? IE. работает так же быстро и всегда дает тот же ответ.
- Оба действительно совместимы с ANSI?
- Есть ли какие-либо выдающиеся причины, по которым я должен настаивать на одном стиле над другим? Или я должен просто оставить достаточно одного?
Примечание: Это только примеры запросов. Я видел, что некоторые запросы (первого типа) объединяют до 5 таблиц за раз.
Возможный дубликат [Какой из них лучше в SQL?] (Http://stackoverflow.com/questions/3212174/which-one-is-better-in-sql) – spender
См. Хороший пост об этом здесь: http : //sqlblog.com/blogs/aaron_bertrand/archive/2009/10/08/bad-habits-to-kick-using-old-style-joins.aspx –
@spender Ну, этот вопрос, который вы связали, закрылся как «не реальный вопрос ». Итак, вы говорите, что мой вопрос «не настоящий вопрос»? Потому что я определенно не соглашусь с этим. – dotnetN00b