多表查询
1. 查询工资最高的员工信息
查询最高的工资是多少 9000
select max(salary) from emp;
查询员工信息,并且工资等于9000的
select * from emp where salary=9000;
一条sql语句完成————子查询
select * from emp where salary=(select max(salary) from emp);
2. 查询财务部和市场部的员工信息
先在部门表里找到财务部市场部的id,
然后在员工表里根据外键dept_id查询。
select id from dept where name="财务部" or name="市场部";
select * from emp where dept_id=2 or dept_id=3;
/*上一行换这样写:
select * from emp where dept_id in (2,3);
*/
一条sql语句完成
select * from emp
where dept_id in( select id from dept where name="财务部" or name="市场部");
3. 查询员工入职日期是2011-11-11之后的员工信息和部门信息
先在员工表里查询满足入职日期的人,然后将这些信息作为虚拟表t2
select * from dept t1,(select * from emp where join_date>'2011-11-11') t2
where t1.id=t2.dept_id;
普通内连接
select * from emp t1,dept t2
where t1.dept_id=t2.id and t1.join_date>'2011-11-11';