我们正在开发ETL作业,我们的顾问在连接表时一直在使用“旧式”SQL
select a.attr1, b.attr1
from table1 a, table2 b
where a.attr2 = b.attr2而不是使用inner join子句
select a.attr1, b.attr1
from table1 as a inner join table2 as b
on a.attr2 = b.attr2我的问题是,从长远来看,使用旧的"where join“有风险吗?这种连接被支持并作为ANSI标准保留了多久?我们的平台是SQL Server,我的主要原因是将来不再支持这些"where joins“。当这种情况发生时,我们必须使用“内部连接”风格的连接来修改所有的ETL作业。
发布于 2010-09-10 19:40:40
我怀疑"where joins“永远不会被支持。不支持它们是不可能的,因为它们是基于笛卡尔乘积和简单过滤的。它们实际上不是joins。
但是,使用新的连接语法有很多原因。其中包括:
发布于 2010-09-10 19:40:11
与其担心未来可能的风险,为什么不担心你现在面临的风险呢?
除了马克的观点之外:
当ON子句从连接的表断开连接(有时是多行连接)时,
发布于 2010-09-10 19:36:23
避免隐式连接的原因有很多。最重要的是:
我认为它们不会很快被移除,但有很多其他理由停止使用它们。
https://stackoverflow.com/questions/3684259
复制相似问题