表的复杂查询-—多表查询

来源:互联网 发布:南阳炳盛网络 编辑:程序博客网 时间:2024/06/04 17:40

员工表emp:

    字段:empno(编号),ename(姓名),job(职位),mgr(上级的编号),hiredate(入职时间),sal(薪水),comm(奖金),deptno(部门编号)

部门表dept

   字段:deptno(部门编号),dname(部门名),loc(地点)

 一.介绍

1.显示sales部门位置及其员工的名称

    select loc,ename from emp,dept where dept.dname ='sales' and emp.deptno=dept.deptno

2.显示雇员名,雇员工资及所在部门的名字

  select ename,sal,dname from emp,dept where emp.deptno=dept.depno

---如果两张表有相同字段,则需要带表名

3.如何显示部门号位10的部门名,员工名和工资

  select dname,ename,sal from emp,dept where emp.deptno=10 and emp.deptno=dept.deptno

4.显示雇员名,雇员工资及所在部门名称并按部门排序

  select ename,sal ,dname where emp.deptno=dept.deptno  order by dept.dname 

二.自连接

    指在同一张表上的连接查询 

       1.显示某个员工的上级领导的名字,比如显示'FORD'的上级和自己的名字

---1.知道FORD的上级编号

      select mgr from emp where  ename ='FORD'

-----2.

      select ename from emp where empno =(select mgr from emp where  ename ='FORD'

2.显示公司每个员工的名字和他上级的名字

  ---分析:把emp表看做俩张表,分别是 worker boss

  select worker.ename,boss.ename from emp worker,emp boss where worker.mgr=boss.empno


0 0
原创粉丝点击