了解LEFT OUTER JOIN的结果

时间:2017-09-08 04:01:01

标签: mysql sql

我有两张桌子,桌子X和桌子Y

表X:

A B C
6 8 7
6 6 7
7 8 6

表Y:

A B D 
5 8 7 
6 6 7
6 8 6

运行代码时

SELECT * FROM X LEFT OUTER JOIN Y on X.B=Y.B;

它返回一个包含5行的表。

这是怎么发生的?

编辑:我知道这是答案,但我只是想解释一下。应该措辞更好:)

1 个答案:

答案 0 :(得分:0)

首先LEFT OUTER JOIN相当于LEFT JOIN

如你所知,

LEFT JOIN关键字返回左表(table1)中的所有记录,以及右表(table2)中的匹配记录。如果没有匹配,则结果从右侧为NULL。

enter image description here

所以在你的情况下,

  • X中的第一行与Y

  • 中的2行匹配
  • X中的第二行与Y

  • 中的1行匹配
  • X中的第三行与Y

  • 中的2行匹配

因此总共5行。由于X中没有不匹配的行,因此结果中的行不会为空值。

更多here