多表查询与子查询

多表查询

前期工作建两张表:

create table dep(
id int,
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,'运营部');

insert into emp(name,sex,age,dep_id) values
('monicx','male',23,200),
('agekes','female',28,201),
('mege','male',38,201),
('joge','female',26,202),
('liuzhen','male',18,200),
('misli','female',18,204)
;
1 交叉连接:没有匹配任何条件,生成笛卡尔积

2 内连接:只连接匹配的行。

3左连接:在内连接的基础上,保留左边没有对应关系的记录

4 右连接:在内连接的基础上,保留右边没有对应关系的记录
4 全连接:在内连接的基础上,保留左、右边没有对应关系的记录
子查询

把一个查询语句用括号括起来,当做另外一条查询语句的条件去用,称为子查询。

如:查询技术部员工的名字:

select name from emp where dep_id =
(select id from dep where name="技术部");


查询平均年龄在25岁以上的部门名

select name from dep where id in
(select dep_id from emp group by dep_id having avg(age) > 25);






  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值