查询oracle原始表d,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;

原文:http://www.cnblogs.com/Juvenile/p/7625325.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值