所以我们正在从 Informix 迁移到 Sql Server。我注意到在 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。所以它是双重的坏。
然而,经过一番谷歌搜索,从理论上讲,它们似乎几乎相同。它们都符合 ANSI 标准。
所以我的问题是:
- 两个查询执行相同吗?IE。运行速度一样快,并且总是给出相同的答案。
- 两者都真的符合 ANSI 标准吗?
- 有什么突出的理由让我应该推动一种风格而不是另一种风格?还是我应该独自离开足够好?
注意:这些只是查询的示例。我见过一些查询(第一类)一次最多连接 5 个表。