开发者社区> 问答> 正文

sql加入维恩图

我在理解sql中的连接时遇到了麻烦,并遇到了此映像,我认为这可能对我有所帮助。问题是我不完全了解它。例如,图像右上角的联接将整个B圆圈染成红色,但仅将A重叠。该图像使圆圈B成为sql语句的主要焦点,但是sql语句本身,从A开头(从A中选择,然后加入B),给我带来了相反的印象,即A将成为sql语句的焦点。

同样,下面的图像仅包含来自B圈的数据,那么为什么join语句中完全包含A?

问题:右上角顺时针工作并在中心结束,有人可以提供有关每个sql映像表示的更多信息,解释

a)为什么在每种情况下都需要联接(例如,特别是在没有从A或B取得数据的情况下,即只有A或B而不是都带有颜色的情况下)

b)和其他任何可以阐明为什么图像很好地表示sql的细节

sql连接图

展开
收起
保持可爱mmm 2020-05-11 13:57:59 374 0
1 条回答
写回答
取消 提交回答
  • 我觉得你的主要潜在的困惑是,当(例如)仅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

    2020-05-11 13:58:19
    赞同 展开评论 打赏
问答分类:
SQL
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spark SQL 2.0/2.1 Experiences 立即下载
GeoMesa on Spark SQL 立即下载
PolarDB NL2SQL: 帮助您写出准确、优化的SQL 立即下载