在不满足条件的情况下获取所有记录

时间:2019-08-06 12:51:36

标签: oracle plsql

我在oracle中有以下配置:

DEF
===
NAMEJOB
ID_JOB
ID_TABLE
....

VARIABLE
========
ID_JOB
ID_TABLE
NAME
VALUE
....

注册示例:

DEF
===
NAMEJOB="APPLE"
ID_JOB=1
ID_TABLE=1


NAMEJOB="HOUSE"
ID_JOB=2
ID_TABLE=2


VARIABLE
========
ID_JOB=1
ID_TABLE=1
NAME="COLOR"
VALUE="GREEN"

ID_JOB=1
ID_TABLE=1
NAME="SIZE"
VALUE="SMALL"


ID_JOB=2
ID_TABLE=2
NAME="COLOR"
VALUE="BROWN"

......

我想获取所有在表变量中没有“ NAME = SIZE”的寄存器。因此输出应为:

ID_JOB=2
ID_TABLE=2
NAMEJOB=HOUSE

如果我用job_id和table_id进行显示,则显示所有寄存器。有人可以帮我吗?谢谢,抱歉我的英语!

1 个答案:

答案 0 :(得分:0)

不存在应该帮助您

SELECT ID_JOB,
ID_TABLE,
NAMEJOB
FROM DEF d
WHERE NOT EXISTS (SELECT * FROM VARIABLE v WHERE d.ID_JOB=v.id_job AND
d.ID_TABLE=v.ID_TABLE and v.NAME = 'SIZE')

enter image description here