在MySQL中,使用的最多就是join。理解他之后能对我们的业务代码有更深的概念。当然这里只是一个简单的入门,也只是个人理解,如有不正确的地方,也请见谅。
了解顺序
一.各种join的概念
姓名 | 性别 | 年龄 | 籍贯 | 工作 |
小红 | 女 | 18 | 上海 | UI设计师 |
小绿 | 男 | 18 | 北京 | UI设计师 |
当我们在求这两个人的交集时,我们会说:小红和小绿在性别互斥,但是两人在年龄上却存在交集,两人在籍贯上互斥,但是在工作上却存在交集。
class_no | class_name |
A | A班 |
B | B班 |
create table class( class_no varchar(5) comment ‘班级编号‘, class_name varchar(10) comment ‘班级名称‘ ) comment ‘班级表‘;
insert into class values(‘A‘,‘A班‘), (‘B‘,‘B班‘); |
student_class | student_name |
A | 小红 |
B | 小白 |
C | 小黑 |
A | 小绿 |
create table student( student_class varchar(5) comment ‘学生所属班级‘, student_name varchar(10) comment ‘学生姓名‘ ) comment ‘学生表‘;
insert into student values(‘A‘,‘小红‘), (‘B‘,‘小白‘), (‘C‘,‘小黑‘), (‘A‘,‘小绿‘); |
select class_no,class_name,student_class,student_name from class cross join student; |
select class_no,class_name,student_class,student_name from class join student on class_no=student_class; |
select class_no,class_name,student_class,student_name from student left join class on class_no=student_class; |
select class_no,class_name,student_class,student_name from student left join class on class_no=student_class where class_name is null; |
二.关于对应关系
三.关于Hive中的join
请参考:https://tech.meituan.com/hive_sql_to_mapreduce.html
原文:https://www.cnblogs.com/yanghuabin/p/9502010.html