数据库左连接、右连接、内连接、全连接笔记

1. 准备

建立两张表,表A以及表B,表A以及表B的字段以及数据如下所示:

表A数据如下所示

image-20210415163946814

表B数据如下所示

image-20210415164002140

下面是各种连接的韦恩图

image-20210415163116517

2 INNER JOIN (内连接)

内连接是一种一一映射关系,就是两张表都有的才能显示出来 用韦恩图表示是两个集合的交集,如图:

image-20210415164102160

代码实现

SELECT A.PK AS A_PK, A.Value AS A_Value,
      B.Value AS B_Value, B.PK AS B_PK
FROM A A
INNER JOIN B B
ON A.PK = B.PK

查询结果与原始表的数据对比

image-20210415164541196
image-20210415164506379

3. LEFT JOIN (左连接)

左连接是左边表的所有数据都有显示出来,右边的表数据只显示共同有的那部分,没有对应的部分只能补空显示,所谓的左边表其实就是指放在left join的左边的表 用韦恩图表示如下:

image-20210415164707821

代码实现

SELECT A.PK AS A_PK, A.Value AS A_Value,
B.Value AS B_Value, B.PK AS B_PK
FROM A A
LEFT JOIN B B
ON A.PK = B.PK

查询结果与原始表的数据对比

image-20210415164832229
image-20210415164506379

4. RIGHT JOIN(右连接)

右连接正好是和左连接相反的,这里的右边也是相对right join来说的,在这个右边的表就是右表 用韦恩图表示如下:

image-20210415164944818

代码实现

SELECT A.PK AS A_PK, A.Value AS A_Value,
B.Value AS B_Value, B.PK AS B_PK
FROM A A
RIGHT JOIN B B
ON A.PK = B.PK

查询结果与原始表的数据对比

image-20210415165123245
image-20210415164506379

5. OUTER JOIN(外连接、全连接)

查询出左表和右表所有数据,但是去除两表的重复数据 韦恩图表示如下

image-20210415165231262

代码实现

SELECT A.PK AS A_PK, A.Value AS A_Value,
B.Value AS B_Value, B.PK AS B_PK
FROM A A
FULL OUTER JOIN B B
ON A.PK = B.PK

查询结果与原始表的数据对比

image-20210415165345129
image-20210415164506379

6. LEFT JOIN EXCLUDING INNER JOIN(左连接不包含内连接)

这个查询是只查询左边表有的数据,共同有的也不查出来 韦恩图表示如下:

image-20210415165506139

代码实现

SELECT A.PK AS A_PK, A.Value AS A_Value,
B.Value AS B_Value, B.PK AS B_PK
FROM A A
LEFT JOIN B B
ON A.PK = B.PK
WHERE B.PK IS NULL

查询结果与原始表的数据对比

image-20210415165608981
image-20210415164506379

7. RIGHT JOIN EXCLUDING INNER JOIN(右连接不包含内连接)

这个查询是只查询右边表有的数据,共同有的也不查出来 韦恩图表示如下:

image-20210415165742844

代码实现

SELECT A.PK AS A_PK, A.Value AS A_Value,
B.Value AS B_Value, B.PK AS B_PK
FROM A A
RIGHT JOIN B B
ON A.PK = B.PK
WHERE A.PK IS NULL

查询结果与原始表的数据对比

image-20210415165913283
image-20210415164506379

8. OUTER JOIN EXCLUDING INNER JOIN(外连接不包含内连接)

意思就是查询左右表各自拥有的那部分数据 韦恩图表示如下:

image-20210415170009855

代码实现

SELECT A.PK AS A_PK, A.Value AS A_Value,
B.Value AS B_Value, B.PK AS B_PK
FROM A A
FULL OUTER JOIN B B
ON A.PK = B.PK
WHERE A.PK IS NULL
OR B.PK IS NULL

*查询结果与原始表的数据对比*

image-20210415170120577
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇