有人可以向我解释一下连接吗?
内连接根据where条件选择公共数据。
左外连接从左表中选择所有数据,而不考虑公共数据,但从右表中获取公共数据,右外连接反之亦然。
我知道基础知识,但当涉及到 5、8、10 个以上的表时,问题仍然存在。
假设我有 10 个表要加入。如果我与前 5 个表进行内连接,现在尝试对第 6 个表应用左连接,那么查询将如何工作?
我的意思是说现在前5个表的结果集将被视为左表,第6个将被视为右表?或者只有第五个表被认为是左,第六个表被认为是右?请帮助我解决这个问题。
当连接多个表时,每个连接的输出在逻辑上形成一个进入下一个连接的虚拟表。
因此,在您问题的示例中,连接前 5 个表的复合结果将被视为左侧表。
See Itzik Ben-Gan 的逻辑查询处理海报 http://www.sql.co.il/books/insidetsql2008/Logical%20Query%20Processing%20Poster.pdf了解更多相关信息。
连接中涉及的虚拟表可以通过定位来控制ON
条款。例如
SELECT *
FROM T1
INNER JOIN T2
ON T2.C = T1.C
INNER JOIN T3
LEFT JOIN T4
ON T4.C = T3.C
ON T3.C = T2.C
相当于(T1 Inner Join T2) Inner Join (T3 Left Join T4)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)