数据库中的连接关系

今天上午有人问到我一个关于数据库的知识点:“你知道左连接与右连接的区别吗?”

当时,别人问我的时候,我脑袋里很清楚这个问题,就连在大学期间课本上有关这部分的知识也记得非常清楚,不过要用语言描述还真是一时不知道怎么表述,也许是程序媛平时只知道怎么去写,不知道怎么说的缘故吧。所以,当时我也就没有用语言去直接回答这个问题,只是说这个问题我清楚是怎么回事。

后来,上网查了一下这个知识点,发现其实用语言表述也许要比举例说明更来得快吧。可当时,还是没有正面回答别人。

下面就将我学习到的这个知识点记录下来,以便进一步掌握。

表A:
aid    adate 
1      a1 
2      a2 
3      a3 

表B:

bid   bdate

1     b1

2     b2

4     b4

左连接:首先列出A表中的所有数据,然后再加上与A、B匹配的数据

1 a1 b1
2 a2 b2
3 a3 空字符

右连接:首先取出B表中的所有数据,然后再加上与A、B匹配的数据
1 a1 b1
2 a2 b2
4 空字符 b4

注意:左右连接跟两个表A、B相连接,取出id相同的字段数据是不一样的。
select * from A,B where A.aid=B.bid这是仅仅取出匹配的数据:
此时取出的结果是:
1 a1 b1
2 a2 b2

这里顺便说一下union、union all
union:是连接两个表的数据并排除所有重复的数据
union all:不排除重复的数据

如果有写得不恰当的地方,还希望各位大神多指点,小女子会虚心学习的!

原文地址:https://www.cnblogs.com/gaoxh/p/5167282.html