是不是SQL A左边加入B,只是A?

0 sql join left-join

所以我看了几张图来理解连接之间的区别,我遇到了这个图像:

在此输入图像描述

也许问题在于用Venn Diagrams来代表这个问题.但是看看第一次加入,左上角,基本上只是A?B在那里有什么不同?

编辑:https://blog.jooq.org/2016/07/05/say-no-to-venn-diagrams-when-explaining-joins/

这个网站解释得很好

The*_*ler 5

不,这是一个加入.如果B中有多行,则A中的一行将多次显示.

例:

表A:

id name
-- -------
 1 Alice
 2 Malcolm
 3 Kelly
Run Code Online (Sandbox Code Playgroud)

表B:

id_a preferred food
---- --------------
   1 Pizza
   2 Burger
   2 Steak
   2 Menestroni
Run Code Online (Sandbox Code Playgroud)

然后"A left join B"会给你:

id name    id_a preferred food
-- ------- ---- --------------
 1 Alice      1 Pizza
 2 Malcolm    2 Burger
 2 Malcolm    2 Steak
 2 Malcolm    2 Menestroni
 3 Kelly   null null
Run Code Online (Sandbox Code Playgroud)

简而言之:

  • A中的所有行都显示在左连接中:甚至3 Kelly显示.
  • 当B中没有匹配的行时,B中的列将显示空值:row 在最后两列中3 Kelly具有null值.
  • A中的行可能会在B中有多个匹配时多次2显示:行显示三次.