MySQL其他知识补充
多表查询思路
# 数据准备
#建表
create table dep(
id int primary key auto_increment,
name varchar(20) 
);
create table emp(
id int primary key auto_increment,
name varchar(20),
sex enum('male','female') not null default 'male',
age int,
dep_id int
);
#插入数据
insert into dep values
(200,'技术'),
(201,'人力资源'),
(202,'销售'),
(203,'运营'),
(205,'保洁')
;
insert into emp(name,sex,age,dep_id) values
('jason','male',18,200),
('egon','female',48,201),
('kevin','male',18,201),
('nick','male',28,202),
('owen','male',18,203),
('jerry','female',18,204);
# 1.查询jason所在的部门名称
    涉及到SQL查询题目 一定要先明确到底需要几张表
    1.先查询jason所在的部门编号
        select dep_id from emp where name='jason';
    2.根据部门编号查询部门名称
        select name from dep where id=(select dep_id from emp where name='jason'); 
    """一条SQL语句的查询结果既可以看成是一张表也可以看成是查询条件"""
    
    
"""
多表查询的思路
    1.子查询
        将SQL语句查询的结果括号括起来当做另外一条SQL语句的条件
            大白话:就是我们日常生活中解决问题的方式>>>:分步操作
    2.连表操作(重要)
        先将需要使用到的表拼接成一张大表 之后基于单表查询完成
            inner join  内连接
            left join   左连接
            right join  右连接
            union       全连接
"""
# 涉及到多表查询的时候 字段名称容易冲突 需要使用表名点字段的方式区分
# inner join:只拼接两张表中共有的部分
select * from emp inner join dep on emp.dep_id = dep.id;
# left join:以左表为基准展示所有的内容 没有的NULL填充
select * from emp left join dep on emp.dep_id = dep.id;
# right join:以右表为基准展示所有的内容 没有的NULL填充
