oracle 多表查询_2018/8/3

多表查询

查询时显示多张表数据

例:查询每个员工的编号,姓名,职位部门名字,和部门位置。
    思路:1、查什么
         2、确定关联字段(95%)

    select empno,ename,job,dname,loc
    from emp,dept
    where emp.deptno=dept.deptno;

例:查询员工的姓名,编号,基本工资,职位,领导姓名,部门名称,位置。
思路:   1、查什么    
        2、确定表   emp e    emp m     dept d
        3、确定关联字段 e.mgr=m.empno emp.deptno=dept.deptno

Select e.ename,e.empno,e.sal,e.job,m.ename,d.dname,d.loc
 from emp e,emp m,dept d
 where e.mgr=m.empno   and   d.deptno=e.deptno;

sql1999语法

Cross join:交叉连接,产生笛卡尔积
select * from emp , dept;
select * from emp cross join dept;

Natural join:自然连接,自动找到匹配的关键字
select * from emp natural join dept;
Join …using   :指定消除笛卡尔积的字段
select * from emp join dept using(deptno);

Left|right |full  [outer] join….on:左|右|全外连接
select * from emp left join dept on emp.deptno=dept.deptno;
select * from emp full join dept on emp.deptno=dept.deptno;

猜你喜欢

转载自blog.csdn.net/weixin_42835567/article/details/81394160