10 多表查询--连表操作

时间:2020-02-16 10:46:41   收藏:0   阅读:52
#建表
create table department(
id int,
name varchar(20) 
);

create table employee(
id int primary key auto_increment,
name varchar(20),
sex enum(male,female) not null default male,
age int,
dep_id int
);

#插入数据
insert into department values
(200,技术),
(201,人力资源),
(202,销售),
(203,运营);

insert into employee(name,sex,age,dep_id) values
(egon,male,18,200),
(alex,female,48,201),
(wupeiqi,male,38,201),
(yuanhao,female,28,202),
(liwenzhou,male,18,200),
(jingliyang,female,18,204)
;

 

内连接:

select * from employee inner join department on employee.dep_id=department.id;

 

左连接:在内连接的基础上保留左表的记录

select * from employee left join department on employee.dep_id=department.id;

 

右连接:

select * from employee right join department on employee.dep_id=department.id;

 

全外连接:在内连接的基础上保留左右两表没有对应关系的记录

select * from employee left join department on employee.dep_id=department.id

union

select * from employee right join department on employee.dep_id=department.id;

 

#查询平均年龄大于30岁的部门

 

select department.name,avg(age) from employee inner join department on employee.dep_id=department.id
group by department.name
having avg(age)>30;

 

 

SELECT 语句关键字的定义顺序

SELECT 语句关键字的执行顺序

执行FROM

执行ON

执行外部行

 

原文:https://www.cnblogs.com/zhujing666/p/12315591.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!