加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql – 多个外连接语义

发布时间:2020-12-12 08:47:43 所属栏目:MsSql教程 来源:网络整理
导读:一些SQL代码: SELECT *FROM table1 tab1 LEFT OUTER JOIN table2 tab2 ON (tab1.fg = tab2.fg) LEFT OUTER JOIN table4 tab4 ON (tab1.ss = tab4.ss) INNER JOIN table3 tab3 ON (tab4.xya = tab3.xya) LEFT OUTER JOIN table5 tab5 ON (tab4.kk = tab5.kk)
一些SQL代码:
SELECT *
FROM table1 tab1 
   LEFT OUTER JOIN table2 tab2 ON (tab1.fg = tab2.fg)
   LEFT OUTER JOIN table4 tab4 ON (tab1.ss = tab4.ss)
   INNER JOIN table3 tab3 ON (tab4.xya = tab3.xya)
   LEFT OUTER JOIN table5 tab5 ON (tab4.kk = tab5.kk)

我知道什么不同类型的JOIN做,但我想知道的是:对于每个JOIN,哪个表承担“左”表的作用? table1总是有“LEFT”表的作用吗?

解决方法

它们按照从上到下的顺序进行处理,所有连接都与先前FROM子句的“整体”相关联.

所有的事情都是平等:

> tab1是带有可选伙伴选项卡2的OUTER JOIN的强制合作伙伴
>以上是OUTER JOIN与可选合作伙伴选项卡4的强制合作伙伴
>以上和tab4都是INNER JOIN中的强制性合作伙伴
>以上是带有可选合作伙伴选项卡5的OUTER JOIN的强制合作伙伴

但是,这个查询的问题

SELECT *
FROM table1 tab1 
LEFT OUTER JOIN table2 tab2 ON tab1.fg = tab2.fg
LEFT OUTER JOIN table4 tab4 ON tab1.ss = tab4.ss
INNER JOIN table3 tab3 ON tab4.xya = tab3.xya
LEFT OUTER JOIN table5 tab5 ON tab4.kk = tab5.kk

INNER JOIN with table3是否使用了“需要”选项卡4的条件,从而使它几乎成为一个强制性的链接,以保留左侧部分的记录,因此总共tab1 / tab4 / tab3必须成功加入,而tab2和tab5是可选的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读