Oracle两个表中如何让一个表排除另一个表已有的字段

本文介绍了如何在Oracle数据库中使用SQL查询从表A中获取所有数据,同时排除表B中已经存在的特定字段。关键在于使用`NOT IN`子查询来实现这一目标。例如,通过查询ZJDGL_JG_TASK表并排除ZJDGL_JG_INSPECTION表中已有的tcode和spvstage组合,确保结果不包含重复记录。
摘要由CSDN通过智能技术生成

一、Oracle两个表中如何让一个表排除另一个表已有的字段?

1.使用场景 , 现在有 a,b两个表,现在需要让你查处 a 表中的全部数据且不包含有和b表相同的两个字段
select distinct  jt.taskid,jt.tcode,t.tproposer,b.typebname,jt.spvstage from zjdgl.zjdgl_jg_task jt
                             left join zjdgl.zjdgl_trans t
                                   on jt.tid = t.tid
                             left join dic.dic_district d
                                   on t.accdist = d.code
                             left join zjdgl.cfg_typeb b
                                   on t.typeb = b.typebcode
                             left join zjdgl.zjdgl_jg_inspection ji
                                   on ji.tcode = jt.tcode
    where d.code = '41' and (jt.tcode,jt.spvstage) not in (select t.tcode,t.spvstage from ZJDGL_JG_INSPECTION t where ptype = '2')

关键代码 where d.code = ‘41’ and (jt.tcode,jt.spvstage) not in (select t.tcode,t.spvstage from ZJDGL_JG_INSPECTION t where ptype = ‘2’)

将需要排除的 a 表的字段放到 and (a表中的字段【多个用逗号隔开】) not in (将 b 表中的数据查出来) 即可
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值