qq_33604638 2016-01-03 03:11 采纳率: 0%
浏览 1864

pg_sql 查询A表中存在而B表中不存在的记录

目的是查询A表中存在而B表中不存在的记录,我写了如下代码

 select DISTINCT a,b,c,d,e,f,0
from A
where (a not in (select a from B) or
            b not in (select b from B) or
            c not in (select c from B) or
            d not in (select d from B) or
            e not in (select e from B) or
            f not in (select f from B)) and
           (g LIKE '%灰斗加热%' or g LIKE '%瓷套加热%') and
            h = '0'  

查询结果是,有些应该查出来的没查出来,
原因是:以表A中的记录是

a b c d e f g h
a5,b5,c5,d5,e5,f5,灰斗加热,‘0’

为例, 假设这条记录存在于表A中而不存在于表B中,则此记录应被查出来,但是按照我的代码,当表B中同时存在存在以下两条记录时

a b c d e f g h
a0,b5,c5,d5,e5,f5,灰斗加热,‘0’
a5,b0,c0,d0,e0,f0,灰斗加热,‘0’

表A中这条记录不能被查出来,因为a5,b5,c5,d5,e5,f5这五个条件确实都存在于表B中,只不过是没有存在于同一条记录中。
我知道查询条件不能被割裂开来,但是pgsql子查询中不允许查询多个字段,应该怎么写,请大神指点一下

  • 写回答

1条回答 默认 最新

  • wanghan1977 2016-01-28 02:05
    关注

    把需要比较的所有字段内容以特殊字符(比如@)间隔,拼接起来后再对比

    评论

报告相同问题?

悬赏问题

  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮