ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

99标准多表联查

2019-07-20 09:02:59  阅读:289  来源: 互联网

标签:ename 多表 dname empno 99 emp deptno 联查 select


99标准的多表连接查询 (内连接查询)  两个表的地位是相等的,查询的是两个表中“等值”列
 语法: select ...from 表名1  [inner] join  表名2 on 连接条件  [where]
 
select empno,ename,job,sal,dname from emp e ,dept d 
where e.deptno=d.deptno and dname='sales';
-- e.deptno=d.deptno 称为连接条件
-- dname='sales' 限定条件(筛选条件)  99年的时候 XXX  这样不好,将连条件与限定条件放在一起了,不容易区分
--所以99标准中,将连接条件与限定条件进行了区分,连接条件使用on,限定条件使用where
select empno,ename,job,sal,dname from emp e
inner join dept d  on e.deptno=d.deptno
where dname='sales';
--三表连接
select stuname,clazzname,schoolname from student s
inner join clazz c on s.clazzid=c.clazzno
inner join school sc on c.place=sc.schoolid
where clazzname like '%java%';  --模糊查询 %代表的是任意个字符 _代表的是一个字符

外连接查询 :查询中的两个表有主次关系,可以查询一个表的所有数据
 --查询所有员工的信息,包含没有部门的员工


--外连接
 --查询的是所有的员工的信息,包含没有部门的员工
select empno,ename,job ,sal ,dname from emp e LEFT JOIN dept d on e.deptno=d.deptno;
select empno,ename,job ,sal ,dname from dept d right join emp e on e.deptno=d.deptno;
--查询所有部门的信息,包含没有员工的部门
select empno,ename,job ,sal,dname,loc from   dept d left join emp e on e.deptno=d.deptno;
select empno,ename,job ,sal,dname,loc from emp e right join dept d on e.deptno=d.deptno;
--查询员工表的所有的信息和部门表的所有信息,包含没有部门的员工和没有员工的部门
 (mysql不支持,oracle支持)
select empno,ename,job ,dname ,loc from emp e    full  outer  join dept d
on e.deptno=d.deptno;
自连接查询 :一张表当作两张表来使用
 
  --查询入职时间早于领导 的员工信息 92
select e.empno,e.ename,e.hiredate as 员工入职时间,m.ename as 领导姓名 ,m.hiredate as 领导的入职时间
 from emp e ,emp m where e.mgr=m.empno  and  e.hiredate <m.hiredate;
 -- 99 
select e.empno,e.ename,e.hiredate as 员工入职时间,m.ename as 领导姓名 ,m.hiredate as 领导的入职时间
 from emp e inner join emp m on e.mgr=m.empno 
where  e.hiredate <m.hiredate;

标签:ename,多表,dname,empno,99,emp,deptno,联查,select
来源: https://blog.csdn.net/HanYueQian/article/details/96561112

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有