加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

oracle多表查询(二)

发布时间:2020-12-12 13:40:45 所属栏目:百科 来源:网络整理
导读:现在要求查询出每一个雇员的编号、姓名、工资、部门名称、工资所在公司的工资等级。 select e.EMPNO 员工编号,e.ENAME 员工姓名,e.SAL 员工工资,d.DNAME 部门名称,s.GRADE 工资等级 FROM EMP e,DEPT d,SALGRADE s WHERE e.DEPTNO=d.DEPTNO AND e.SAL BETWEEN

现在要求查询出每一个雇员的编号、姓名、工资、部门名称、工资所在公司的工资等级。

select e.EMPNO 员工编号,e.ENAME 员工姓名,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;

?

? ? ?左,右连接

左、右连接指的主要是查询判断条件的参考方向

例如我们执行:

SELECT * FROM emp e,dept d WHERE e.deptno=d.deptno;

?

但是我们的部门一共有四个,这样看不到部门D的数据,这时就需要我们使用右连接
SELECT * FROM emp e right JOIN dept d ON e.deptno=d.deptno;(右连接的意思就是,即使关联条件执行后,right join后面表的数据也都会显示,相对于的right join前面表的数据就都是null)

?

这种写法等价于
SELECT * FROM emp e,dept d where e.deptno(+)=d.deptno;(这时oracle数据库独有的写法)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读