zoukankan      html  css  js  c++  java
  • 又是一句奇怪的SQL

    其中PACKAGE 为主表,package_id为num型自增ID。package_id被一堆表引用。我要找出所有没有被引用的package_id。
    在Oracle下用这句是对的。
    select package_id  from PACKAGE where package_id not in(
         select package_id  from PACKAGE where package_id in
         (
         select package_id from CLAIM
         union
         select package_id from LAWCASE
         union
         select package_id from MEETINGS
         union
         select package_id from WORK_PLAN_SUM
         union
         select package_id from WORK_REPORT
         union
         select package_id from ORG_PDUTY
         union
         select package_id from ORGANIZE
         union
         select package_id from FILE_ASSIGN
         )
    )
    但是上面的SQL太难看了。我又直接把NOT写到里面
    select package_id  from PACKAGE where package_id not in(
         select package_id from CLAIM
         union
         select package_id from LAWCASE
         union
         select package_id from MEETINGS
         union
         select package_id from WORK_PLAN_SUM
         union
         select package_id from WORK_REPORT
         union
         select package_id from ORG_PDUTY
         union
         select package_id from ORGANIZE
         union
         select package_id from FILE_ASSIGN
    )
    结果在Oracle里执行,在有些数据下结果对。有时结果竟出错。:(
    打个比方比如一共3条记录,1,2,3 ,其中1,2被外键引用。结果有时会查出
    被用引的ID为
    -----
    1
    -----
    2
    -----
    空格
    -----
    然后没有被引用的为
    -----
    空格
    -----
    吐血。不过后来自己造了一批数据又没测出这个问题。我真想不通怎么会查出有空格这种记录。数据库完整性施加的够严格了。怎么可能会出现num型的package_id里查出空格。但是记录里我查了一下真的没有空行呀。早上这句SQL差点删掉一批有用的数据


  • 相关阅读:
    Python pip离线部署
    Windows API 纳秒级别延迟
    基于Cython和内置distutils库,实现python源码加密(非混淆模式)
    boost.property_tree读取中文乱码问题
    Direct初始化三步曲
    分享一个电子发票信息提取工具(Python)
    关于&0x80
    给QT不规则窗口添加阴影
    waveout系列API实现pcm音频播放
    An application has made an attempt to load the C runtime library incorrectly.Please contact the application's support te
  • 原文地址:https://www.cnblogs.com/tongzhenhua/p/15594.html
Copyright © 2011-2022 走看看