查询:
select te.empno, te.ename, te.mgr
from test te
where te.deptno=10 and
not exists (select 1 from t1 te1 where te1.deptno=te.deptno and te1.empno=te.empno) and
not exists (select 1 from t te2 where te2.mgr=te.mgr);
表名:叔
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
7839 KING PRESIDENT - 17-Nov-81 5000 - 10
7782 CLARK MANAGER 7839 9-Jun-81 2450 - 10
7934 MILLER CLERK 7782 23-Jan-82 1300 - 10
123 Ranga - 7566 - - - 10
124 srinu - 123 - - - 10
表名:T1
EMPNO DEPTNO
7782 10
7934 10
7839 10
表名:吨
MGR NAME
7566 aaa
这里我有三个不同的表格。我想要三个表不同的数据。有可能得到不同的请求帮助吗?
必需的输出:
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
123 Ranga - 7566 - - - 10
124 srinu - 123 - - - 10
答案 0 :(得分:0)
select te.empno, te.ename, te.mgr from test te
WHERE te.deptno=10
AND not exists(select 1 from t1 te1 where te1.deptno=te.deptno and te1.empno=te.empno)
AND exists(select 1 from t te2 where te2.mgr=te.mgr)
union
select te.empno, te.ename, te.mgr from test te
WHERE te.deptno=10
AND not exists(select 1 from t1 te1 where te1.deptno=te.deptno and te1.empno=te.empno)
AND not exists(select 1 from t te2 where te2.mgr=te.mgr)
这是针对问题上方的解决方案
答案 1 :(得分:-1)
我认为你只需要两张桌子。 如果我理解正确你只需要两张桌子。
select te.EMPNO, te.ENAME, te.JOB, t.MGR,t.NAME as "MGRNAME",te.HIREDATE, te.SAL, te.COMM, te.DEPNO
from te
join t on t.MGR=te.MGR
如果您需要使用3个表格,请执行以下操作:
select te.EMPNO, te.ENAME, te.JOB, t.MGR,t.NAME as "MGRNAME",te.HIREDATE, te.SAL, te.COMM, te.DEPNO
from te
join t1 on t1.EMPNO=te.EMPNO and t1.DEPNO=te.DEPTNO
join t on t.MGR=te.MGR