在SQL中加入多个表

sombody可以解释一下我的联系吗?

内连接根据条件选择公共数据.

左外连接从左侧选择所有数据,不管是常用数据,但是从右侧表中接收公共数据,反之亦然.

我知道基础知识,但问题是停留在加入超过5,8,10表.

假设我有10个表加入.如果我有内部加入前5个表,现在尝试应用第6个表的左连接,现在查询将如何工作?

我的意思是说现在前5个表的结果集将作为左表,第6个将被视为右表?或者只有第五个表将被视为左和右6号?请帮我解决这个问题.

解决方法

加入多个表时,每个连接的输出逻辑上形成进入下一个连接的虚拟表.

所以在你的问题的例子中,加入前5个表的复合结果将被视为左手表.

有关更多信息,请参阅Itzik Ben-Gan’s Logical Query Processing Poster.

可以通过定位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内加T2)内连(T3左加入T4)

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 'EastRiver' 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...