sql - 如何使用完全连接操作获得左连接的输出?
问题描述
如何使用完全连接操作获得左连接的输出?
解决方案
创建表部门(部门
编号(2,0),
dname varchar2(14),
loc varchar2(13),
约束pk_dept主键(deptno)
)
创建表 emp(
empno number(4,0),
ename varchar2(10),
job varchar2(9),
mgr number(4,0),
hiredate date,
sal number(7,2),
comm number(7,2) ,
deptno number(2,0),
约束 pk_emp 主键 (empno),
约束 fk_deptno 外键 (deptno) 引用 dept (deptno
)
插入DEPT(DEPTNO,DNAME,LOC)
值(20,'RESEARCH','DALLAS')插入DEPT(DEPTNO,DNAME,LOC)
值(30,'SALES','CHICAGO')插入DEPT(DEPTNO, DNAME, LOC) values(40, 'OPERATIONS', 'BOSTON') select*from dept;
插入 emp
值(
7839,'KING','PRESIDENT',null,
to_date('17-11-1981','dd-mm-yyyy'),
5000,null,10
)
插入 emp
值(
7698、'BLAKE'、'MANAGER'、7839、
to_date('1-5-1981'、'dd-mm-yyyy')、
2850、null、30
)
插入 emp
值(
7782、'CLARK'、'MANAGER'、7839、
to_date('9-6-1981'、'dd-mm-yyyy')、
2450、null、10
)
插入emp
值(
7566,'JONES','MANAGER',7839,
to_date('2-4-1981','dd-mm-yyyy'),
2975,null,20
)插入emp
值(
7788,' SCOTT', 'ANALYST', 7566,
to_date('13-JUL-87','dd-mm-rr') - 85,
3000, null, 20
) 插入 emp
值(
7902, 'FORD', 'ANALYST' , 7566,
to_date('3-12-1981','dd-mm-yyyy'),
3000, null, 20
)
插入emp
值(
7369,'SMITH','CLERK',7902,
to_date('17-12-1980','dd-mm-yyyy'),
800,null,20
)插入emp
值(
7499,' ALLEN', 'SALESMAN', 7698,
to_date('20-2-1981','dd-mm-yyyy'),
1600, 300, 30
) 插入 emp
值(
7521, 'WARD', 'SALESMAN', 7698 ,
to_date('22-2-1981','dd-mm-yyyy'),
1250, 500, 30
)
输出: select *from dept full join emp on dept.DEPTNO=emp.DEPTNO where dept.DEPTNO=emp.DEPTNO union select *from dept full join emp on dept.DEPTNO=emp.DEPTNO where emp.DEPTNO 为空;
推荐阅读
- twitter-bootstrap - 如何在引导程序的右侧添加 EMPTY col
- mysql - 你如何确定 PHP 中两个常量值之间的百分比?
- node.js - 使用 stripe + netlify 时如何将订单确认数据反映到前端?
- python - 将长字符串写入文件
- trim - 在多路分解、适配器移除、修剪和过滤之后,有多少 GBS 衍生读数通过过滤器?
- python - 你如何在 UnitTest 中测试列表?
- docker-compose - 无法在 docker 中运行 .net 核心应用 Azure Durable Functions v3
- javascript - 为什么我只返回一个过滤的对象而不是全部?
- java - 如何在 Java 中添加未知字段“21”的 FieldMask
- flutter - 如何在 TextFormfeild Flutter 2.0.1 中关闭键盘