我们正在开发ETL作业,并且我们的顾问在连接表时一直使用“旧式” SQL
select a.attr1, b.attr1 from table1 a, table2 b where a.attr2 = b.attr2
而不是使用内部连接子句
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作业。
我怀疑是否会支持“ where joins”。不支持它们是不可能的,因为它们基于笛卡尔积和简单的过滤。他们实际上不是联接。
但是使用更新的联接语法有很多原因。除其他外: