我知道这很简单,但我是新手,并且不知道如何编写此查询。我有3张桌子:rekon,流量和笔记。
rekon:
no sex
a F
b F
c M
d F
e M
流:
no notes_no
a PX
a SX
a
a DX
b MX
b CX
c
c PX
d LX
d WX
注释:
notes_no no
AX a
BX f
CX g
DX a
EX c
FX c
GX g
HX b
PX a
SX a
我想列出不属于流量的笔记中的所有条目,仅针对来自rekon的女性客户。所以结果应该是
no sex notes_no
a F AX
b F HX
我尝试使用声明
notes.notes_no not in (select distinct notes_no from flows)
但是我需要很多行,oracle在计算它时会遇到问题。
提前谢谢。
答案 0 :(得分:0)
select N.*
from rekon R
join notes N
on N.no = R.no
where R.sex = 'F'
and not exists (
select 1
from flows F
where F.notes_no = N.notes_no
)
;
根据您的表间引用关系的定义,查询可能略有不同,因此exists
谓词也可以读取
and not exists (
select 1
from flows F
where F.no = N.no
and F.notes_no = N.notes_no
)
如果您的Oracle在合理的时间内查询数据时遇到问题,那么您可能会
答案 1 :(得分:0)
尝试此查询:
SELECT notes.* FROM notes
INNER JOIN rekon ON rekon.no = notes.no
LEFT JOIN flows ON flows.no = notes.no
WHERE flows.no IS NULL and sex = 'F'