gpt4 book ai didi

sql-server - 与多个 ON 的连接是什么意思?

转载 作者:行者123 更新时间:2023-12-02 15:29:47 24 4
gpt4 key购买 nike

我在我们的一个数据库中发现一个 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com