我在理解sql中的连接时遇到了麻烦,并遇到了此映像,我认为这可能对我有所帮助。问题是我不完全了解它。例如,图像右上角的联接将整个B圆圈染成红色,但仅将A重叠。该图像使圆圈B成为sql语句的主要焦点,但是sql语句本身,从A开头(从A中选择,然后加入B),给我带来了相反的印象,即A将成为sql语句的焦点。
同样,下面的图像仅包含来自B圈的数据,那么为什么join语句中完全包含A?
问题:右上角顺时针工作并在中心结束,有人可以提供有关每个sql映像表示的更多信息,解释
a)为什么在每种情况下都需要联接(例如,特别是在没有从A或B取得数据的情况下,即只有A或B而不是都带有颜色的情况下)
b)和其他任何可以阐明为什么图像很好地表示sql的细节
sql连接图
我觉得你的主要潜在的困惑是,当(例如)仅A在红色,你正在做强调,意味着“查询只返回数据来自A ”,但实际上它的意思是”查询只返回数据的那些情况下,A有记录 ”。查询可能仍包含从B.数据(对于那些情况下B也不会有记录,查询将取代NULL。)
同样,下面的图像仅包含来自B圈的数据,那么为什么join语句中完全包含A?
如果您的意思是-图像A完全是白色的,并且有一个红色的月牙形,而该部分与B不重叠A,则:A查询中出现的原因是,A它如何查找B需要的记录被排除在外。(如果A未出现在查询中,则维恩图将没有A,只会显示B,并且无法将所需记录与不需要的记录区分开。)
图像使圆B看起来像是sql语句的主要焦点,但是sql语句本身通过以A开头(从A选择,然后联接B)向我传达了相反的印象,即A将成为焦点sql语句。
完全正确。因此,RIGHT JOINs比较少见。尽管使用a的查询LEFT JOIN几乎总是可以重新排序为使用a RIGHT JOIN的查询(反之亦然),但通常人们会使用LEFT JOIN和而不使用来编写查询RIGHT JOIN。来源:stack overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。