图解LEFT JOIN、RIGHT JOIN与JOIN的区别

如图:

T1表
ID NAME AGE
1 张三 11
2 李四 12
3 王五 13

 

T2表
ID NAME COURSE
3 张三 语文
4 张三 数学
5 马六 英语

 

1、ID关联(LEFT JOIN)

SELECT * FROM T1 LEFT JOIN T2 ON T1.ID=T2.ID

结果如图:

图解LEFT JOIN、RIGHT JOIN与JOIN的区别_第1张图片

联系两个表:

图解LEFT JOIN、RIGHT JOIN与JOIN的区别_第2张图片

分析:以T1表(左边)为主表,查询与T1表有相同ID的数据。

2、ID关联(RIGHT JOIN)

SELECT * FROM T1 RIGHT JOIN T2 ON T1.ID=T2.ID

结果如图:

图解LEFT JOIN、RIGHT JOIN与JOIN的区别_第3张图片

联系两个表:

图解LEFT JOIN、RIGHT JOIN与JOIN的区别_第4张图片

分析:以T2表(右边)为主表,查询与T2表有相同ID的数据。

转换:即

SELECT * FROM T1 RIGHT JOIN T2 ON T1.ID=T2.ID

等同于

SELECT * FROM T2 LEFT JOIN T1 ON T1.ID=T2.ID

查询出来的数据一样,但呈现方式不同,如下图:

图解LEFT JOIN、RIGHT JOIN与JOIN的区别_第5张图片图解LEFT JOIN、RIGHT JOIN与JOIN的区别_第6张图片

3、ID关联(JOIN)

SELECT * FROM T1 JOIN T2 ON T1.ID=T2.ID

等同于

SELECT * FROM T2 JOIN T1 ON T1.ID=T2.ID

结果如图:

分析:查询两个有相同ID的的数据。

------------------------------------------------------这时候如果换一种方式呢,比如以NAME关联----------------------------------------------

①NAME关联(LEFT JOIN)

SELECT * FROM T1 JOIN T2 ON T1.NAME=T2.NAME

结果如图:

联系两个表:

图解LEFT JOIN、RIGHT JOIN与JOIN的区别_第7张图片

分析:以T1表(左边)为主表,查询与T1表有相同NAME的数据(与以ID关联原理一样,LEFT JOIN与JOIN就不一一列出来了)。

 

你可能感兴趣的:(整理总结)