oracle问题:内连接、外连接、左右连接等等,是不是只有两个表时才有的现象?一个表是不可能有的??
发布网友
发布时间:2022-05-15 09:26
我来回答
共4个回答
热心网友
时间:2023-10-17 16:55
这个是连接的问题了。一个表也可以连接,一个表可以自己和自己连接,这就叫做内连接,也叫自连接。外连接就是二个表了,左连接的话,就好像 where tabl1.num(+)=table2.num。不管table1的num是否符合条件,它都会被列出来
热心网友
时间:2023-10-17 16:55
是两个数据集合才有的现象。
一个表弄两个集合也是可以连的,就看有用还是没用。如:
select * from (select 字段1, 字段2 from 表1)a left join (select 字段1, 字段3 from 表1)b on b.字段1=a.字段1
热心网友
时间:2023-10-17 16:56
1、等连接
问题:显示员工姓名及其所在部门的名称
分析: 姓名 - emp - ename
部门名称 - dept - dname
关系 emp(deptno) <-> dept(deptno)
select e.ename,d.dname from emp e,dept d where e.deptno = d.deptno;
2、外连接
问题:查询所有部门名称和对应的员工姓名,若该部门没有员工,只显示部门名称。
分析: 部门名称 - dept -dname
员工姓名 - emp - ename
select d.dname,e.ename from emp e,dept d where e.deptno(+) = d.deptno;
注意:Oracle中使用(+)表示外连接,可以理解(+)所在字段的对侧(以=分开左右两部分)为主要显示信息。
3、自连接
问题:显示员工姓名及其上级员工的姓名
分析:员工姓名 - emp -ename
select t1.ename,t2.ename from emp t1,emp t2 where t1.mgr = t2.empno;
4、子查询模式
问题:查询工资高于公司平均工资的所有员工
分析:公司的平均工资
select avg(sal) from emp;
select * from emp where sal>(select avg(sal) from emp); // 关联子查询
热心网友
时间:2023-10-17 16:57
一张表叫自连接
自连接是指在同一张表的连接查询
如:显示某个员工的上级领导的姓名?
比如显示员工‘FORD’的上级
SELECT worker.ename, boss.ename FROM emp worker,emp boss WHERE worker.mgr = boss.empno AND worker.ename = 'FORD';