连接的含义:表与表之间的关系,吃个栗子:学生信息表A包含:性别、年龄、身份证号码,学生兴趣爱好表B包含:身份证号码、兴趣爱好。如果你想了解不同兴趣爱好的学生的姓名以及性别情况,单纯靠一张兴趣爱好表是没有办法回答的,得结合学生信息表,就要找他们之间的关系。可以通过身份证号码将两个表连接起来。身份证号码就是A的主键,也是B的外键,因为它能唯一识别一个学生。
连接类型
- 内连接
- 外连接
- 左连接
- 右连接
- 全连接
找到相同的主键,然后把不同的表合并,吃栗子:
编号 | 姓名 | 年龄 |
1 | 陈 | 12 |
2 | 学 | 15 |
4 | 明 | 19 |
A B
编号 | 兴趣 |
1 | 吃饭 |
2 | 吃雪糕 |
3 | 吃酸菜鱼 |
要合并A、B 两表根据编号,
内连接的结果:只返回配对上的观测 inner_join(A,B,by=编号)或merge(A,B)
编号 | 兴趣 | 姓名 | 年龄 |
1 | 吃饭 | 陈 | 12 |
2 | 吃雪糕 | 学 | 15 |
外连接之左连接:记住哪边连接哪边不变
左连接结果:当右表即B与A没有匹配时,则该观测的取值为空值。
Left_join (A,B,by=编号)或merge(A,B,all.x=T)
编号 | 兴趣 | 姓名 | 年龄 |
1 | 吃饭 | 陈 | 12 |
2 | 吃雪糕 | 学 | 15 |
3 | 吃酸菜鱼 |
|
|
同理右连接的结果:
right_join(A,B,by=编号)或merge(A,B,all.y=T)
编号 | 兴趣 | 姓名 | 年龄 |
1 | 吃饭 | 陈 | 12 |
2 | 吃雪糕 | 学 | 15 |
4 |
| 明 | 19 |
全连接的结果:
全部保留,当没有匹配的情况,则为空值。
编号 | 兴趣 | 姓名 | 年龄 |
1 | 吃饭 | 陈 | 12 |
2 | 吃雪糕 | 学 | 15 |
3 | 吃酸菜鱼 |
|
|
4 |
| 明 | 19 |