python—day40 子查询

子查询:把一个查询语句用括号括起来,当作另外一条查询语句的条件去用,成为子查询;

 1 -- 子查询:把一个查询语句用括号括起来,当做另外一条查询语句的条件去用,称为子查询
 2 -- SELECT emp.name from emp INNER JOIN dep on emp.dep_id = dep.id where dep.name = '技术';
 3 -- select name from emp where dep_id =
 4 -- (select id from dep where name = '技术');
 5 
 6 -- #查询平均年龄在25岁以上的部门名
 7 -- select dep_id from emp group by dep_id having avg(age) > 25;
 8 -- select name from dep where id in
 9 -- (select dep_id from emp group by dep_id having avg(age) > 25);
10 
11 -- select * from emp inner join dep on emp.dep_id = dep.id;
12 -- select dep.name from emp inner join dep on emp.dep_id = dep.id group by dep.name having avg(age)>25;
13 
14 -- select * from emp where exists (
15 --     select id from dep where id > 3
16 -- );
17 
18 -- select dep.name from emp inner join dep on emp.dep_id = dep.id group by dep_id having count(dep_id)<2;
1 -- select t2.id,t2.name,t2,age,t1.max_date from emp as t2 inner JOIN 
2 -- -- 把查出来的每个部门最大入职时间当成一个虚拟表
3 -- (select post,max(hire_date) as max_date from emp group by post)as t1;
4 -- on t2.id = t1.id where t2.hire_date = t1.hire_date;
5 
6 select t1.id,t1.name,t1.age,t1.sex,t1.post,t1.hire_date,t2.max_date from emp as t1 INNER JOIN 
7 (select post,max(hire_date) as max_date from emp group by post) as t2
8 ON t1.post = t2.post where 
9 t1.hire_date = t2.max_date;

猜你喜欢

转载自www.cnblogs.com/kermitjam/p/9025344.html