度量快速开发平台-专业、快速的软件定制快开平台
标题:
多表查询
[打印本页]
作者:
fteair
时间:
2020-5-7 17:23
标题:
多表查询
--笛卡尔积查询.
select * from emp,dept;--结果为64条,emp表有14条,dept表有4条
--别名查询
--改变查询后的结果显示的列名,在字段后面写要显示的列名(注意一定要用双引号括起来,oracle查询中之后这里用到双引号!)
select ename "name" ,loc "地点" from emp e ,dept d where e.deptno = d.deptno;
--查询出雇员的编号,姓名,部门的编号和名称,地址
select * from emp;
select * from dept;
select e.empno "雇员编号",
e.ename "姓名",
e.deptno "部门的编号",
d.dname "部门名称",
d.loc "部门地址"from emp e,
dept d where e.deptno = d.deptno;--当字段名唯一时,字段前的别名可以省略
select empno "雇员编号",
ename "姓名",
e.deptno "部门的编号",--当两张表中都有该字段时,字段前的别名一定不能省略
dname "部门名称",
loc "部门地址"from emp e,
dept d where e.deptno = d.deptno;
--查询出每个员工的上级领导
select e1.mgr,e1.ename , e2.empno, e2.ename
from emp e1, emp e2
where e1.mgr = e2.empno ;
--在上面的查询基础上查询该员工的部门名称
select e1.mgr,e1.ename , e2.empno, e2.ename,d.dname
from emp e1, emp e2,dept d
where e1.mgr = e2.empno and e1.deptno = d.deptno;
--查出每个员工编号,姓名,部门名称,工资等级和他的上级领导的姓名,工资等级
select * from salgrade;
select * from emp;
select e1.mgr,
e1.sal,
e1.ename,
decode(g1.grade,
1,
'一等',
2,
'二等',
3,
'三等',
4,
'四等',
5,
'五等') "员工工资等级",
e2.empno,
e2.sal,
e2.ename,
decode(g2.grade,
1,
'一等',
2,
'二等',
3,
'三等',
4,
'四等',
5,
'五等') "领导工资等级"
from emp e1, --员工表
emp e2, --领导表
salgrade g1, --员工工资等级
salgrade g2 --领导工资等级
where e1.mgr = e2.empno
and e1.sal between g1.losal and g1.hisal
and e2.sal between g2.losal and g2.hisal;
复制代码
作者:
fteair
时间:
2020-5-7 17:23
欢迎光临 度量快速开发平台-专业、快速的软件定制快开平台 (http://bbs.delit.cn/)
Powered by Discuz! X3.2