Oracle表的连接

自连接

自己和自己连接

例如,查询30号部门下的员工的领导是谁

 select worker.ename,manager.ename
 from emp worker,emp manager
 where worker.mgr=manager.empno and worker.deptno=30;

解释:worker和manager是表emp的别名,worker.mgr=manager.empno这里是连接条件

查询结果如下:

ENAME      ENAME
---------- ----------
ALLEN      BLAKE
WARD       BLAKE
MARTIN     BLAKE
BLAKE      KING
TURNER     BLAKE

等值连接

查询所有部门的员工

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

查询结果如下:

   DEPTNO DNAME          ENAME
    ---------  --------------       ----------
       10 ACCOUNTING     CLARK
       10 ACCOUNTING     JAMES
       10 ACCOUNTING     KING
       10 ACCOUNTING     MILLER
       20 RESEARCH       FORD
       20 RESEARCH       JONES
       20 RESEARCH       SMITH
       20 RESEARCH       SCOTT
       20 RESEARCH       ADAMS
       30 SALES          WARD
       30 SALES          ALLEN
       30 SALES          TURNER
       30 SALES          BLAKE
       30 SALES          MARTIN

外连接

还是查询所有部门的员工,但是没有员工的部门也显示出来

 select dept.deptno,dept.dname,ename
 from dept,emp
 where emp.deptno (+)=dept.deptno
 order by deptno

查询结果:

    DEPTNO DNAME          ENAME
---------- --------------            ----------
        10 ACCOUNTING     CLARK
        10 ACCOUNTING     JAMES
        10 ACCOUNTING     KING
        10 ACCOUNTING     MILLER
        20 RESEARCH       FORD
        20 RESEARCH       JONES
        20 RESEARCH       SMITH
        20 RESEARCH       SCOTT
        20 RESEARCH       ADAMS
        30 SALES          WARD
        30 SALES          ALLEN
        30 SALES          TURNER
        30 SALES          BLAKE
        30 SALES          MARTIN
        40 OPERATIONS


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值