作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在我们的一个数据库中发现一个 View 在 LEFT OUTER JOIN
之后有多个 ON
语句。我不知道这是有效的 TSQL,我对它的含义更加困惑?
最佳答案
FROM 中的 ON 子句强制连接顺序。
如果像这样表达
A LEFT JOIN B on A.id = B.id JOIN C on b.id = c.id
你想先做B INNER JOIN C,然后做OUTER JOIN,可以用括号
A LEFT JOIN (B JOIN C on b.id = c.id) on A.id = B.id
不需要括号,可以一个接一个写ON
A LEFT JOIN B JOIN C on b.id = c.id on A.id = B.id
ON 子句应该是交叉关系(first-last,second - one before last 等)
它就像2 + 2 * 2
。如果预期结果是8
,你必须写成(2 + 2) *2
或使用逆波兰符号来避免歧义,2 2 + 2 *
。括号更容易被人类理解,但很少使用。当我看到连续几个没有括号的ON时,通常是自动生成的代码。
关于sql-server - 与多个 ON 的连接是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28432386/
我是一名优秀的程序员,十分优秀!