sql – 多个外连接语义

前端之家收集整理的这篇文章主要介绍了sql – 多个外连接语义前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
一些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是可选的.

原文链接:https://www.f2er.com/mssql/75391.html

猜你在找的MsSQL相关文章