表结构和数据如下:A表:empno number, positionno number 一对一
数据如:
1 1
2 2
3 3
4 1
5 2
6 4
B表:positionno number, rightno number 一对多
数据如:
1 1
1 2
1 3
1 4
1 5 2 1
2 2 3 1
3 2
4 1
4 2
4 3
4 4
C表:rightno number rightname varchar2 type number 一对一
1 name1 0
2 name2 0
3 name3 1
4 name4 1
5 name5 1现需要查询type值只能等于0的empno,注意这里的2和3是可配置的(动态的),即对应1和2的编号可能是1和4或其他数字
但不管怎样,他们所对应的1和2是固定的。 现需要查询type值只能等于0的empno, 希望各位高手们帮忙解决!
数据如:
1 1
2 2
3 3
4 1
5 2
6 4
B表:positionno number, rightno number 一对多
数据如:
1 1
1 2
1 3
1 4
1 5 2 1
2 2 3 1
3 2
4 1
4 2
4 3
4 4
C表:rightno number rightname varchar2 type number 一对一
1 name1 0
2 name2 0
3 name3 1
4 name4 1
5 name5 1现需要查询type值只能等于0的empno,注意这里的2和3是可配置的(动态的),即对应1和2的编号可能是1和4或其他数字
但不管怎样,他们所对应的1和2是固定的。 现需要查询type值只能等于0的empno, 希望各位高手们帮忙解决!
“但不管怎样,他们所对应的1和2(指rightno)是固定的”
又看不懂了
呵呵!都怪我没讲清楚
2和3是B表的positionno字段
1和2是指B表或C表的rightno字段
where not exists(
select 1 from b,c
where b.rightno=c.rightno
and a.positionno=b.posistionno
and c.type<>0)
FROM A A,
(SELECT DISTINCT(B.POSITIONNO) AS POSITIONNO
FROM B B, C C
WHERE C.RIGHTNO = B.RIGHTNO
AND C.TYPE = '0') D
WHERE A.POSITIONNO = D.POSITIONNO