oracle 多表查询

Posted 唐僧还在拜佛求经路。

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle 多表查询相关的知识,希望对你有一定的参考价值。

    实际上所谓的多表查询指的就是从多张数据表中取出数据并且显示的一种操作。
              select * from scott.emp,dept.emp 笛卡尔积存在的原因
            实际:
              SELECT * FROM scott.emp e, scott.dept d  WHERE e.deptno=d.deptno;

范例1:查询出每个雇员的编号,姓名、职位、基本工资、部门名称、部门位置。
                ·确定要使用的数据表:
                  -:emp表:编号,姓名、职位、基本工资、
                  -:detp表:部门名称、部门位置。
                ·确定已知的关联字段:
                  -:雇员与部门:emp.deptno=dept.deptno
          第一步:查询出每个雇员的编号,姓名、职位、基本工资。
                  select  e.empno,e.ename,e.job,e,sal from emp e;
          第二步:查询出每个雇员对应的部门信息;需要引入dept表(引入表的时候一定考虑有关联),deptno字段关联,所以利用where子句消除笛卡尔积。
                  select e.empno,e.ename,e.job,e.sal,d.dname,d.loc
                   from scott.emp e, scott.dept d
                   where e.deptno=d.deptno;

        范例2:查询出每个雇员的编号,姓名、职位、基本工资、工资等级。
              select e.empno,e.ename,e.job,e.sal,s.grade
              from scott.emp e,scott.salgrade s
              where e.sal  BETWEEN s.losal and s.hisal;
        范例3:查询出每个雇员的编号,姓名、职位、基本工资、部门名称、工资等级。
                确定所需要的数据表:
                    -:emp表:编号,姓名、职位、基本工资、
                    -:detp表:部门名称、
                    -:salgrade表:工资等级
                确定已知的关联字段:
                    -:雇员与部门:emp.deptno-dept.deptno
                    -:雇员与工资等级;emp.sal BETWEEN salgrade.losal and salgrade.hisal
                  第一步:select e.empno,e.ename,e.job,e.sal
                           from emp e;
                  第二步:加入部门名称、增加一张表就增加一条消除笛卡尔积。
                          select e.empno,e.ename,e.job,e.sal,d.dname
                           from emp e,dept d
                           where e.deptno=d.deptno;
                  第三步:加入工资等级信息,与原始的
                          select e.empno,e.ename,e.job,e.sal,d.dname,s.grade
                           from emp e,dept d,salgrade s
                           where e.deptno=d.deptno and e.sal between s.losal and s.hisal;






































以上是关于oracle 多表查询的主要内容,如果未能解决你的问题,请参考以下文章

Oracle --- 多表查询和子查询

Oracle中的多表查询(笛卡尔积原理)

Oracle 查询技巧与优化 多表查询

Oracle多表查询与数据更新

Oracle曾经的Oracle学习笔记(4-7)多表联合查询,子查询,动态条件查询

oracle02--多表关联查询