【发布时间】:2012-08-22 03:17:43
【问题描述】:
我不太确定如何描述它,也不太确定它是否只是语法糖。这是我第一次看到它,我很难找到关于它的原因和内容的参考或解释。
我有一个查询如下:
select * from
table1
join table2 on field1 = field2
join (
table3
join table4 on field3 = field4
join table5 on field5 = field6
) on field3 = field2
-- notice the fields in the parens and outside the parens
-- are part of the on clause
括号是必要的吗?删除它们会改变加入顺序吗?在这种情况下,我处于 SQL Server 2005 环境中。谢谢!
【问题讨论】:
-
我讨厌这种语法并尽可能删除它。当嵌套连接是左连接时,我看到它更常见。我不相信括号是必需的,但如果我离开语法,我会保留它们,因为它会提醒维护者正在发生一些不寻常的事情。我会尝试将这个作为普通连接,并对两个结果进行计时,看看嵌套连接是否更快。如果是则保留它,如果不是,则摆脱这种非标准语法。
标签: sql sql-server tsql sql-server-2005 join