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差点删掉一批有用的数据


  • 相关阅读:
    opencv 在工业中的应用:模板匹配
    opencv 在工业中的应用:圆孔定位
    视觉基础与开发思路-第十节其他功能简介及总结
    视觉基础与开发思路-第九节形态学操作
    视觉基础与开发思路--第八节图像分割之轮廓进一步处理
    视觉基础与开发思路-第七节图像分割之点线圆边缘
    视觉基础与开发思路--第六节区域特征提取
    视觉基础与开发思路--第五节阈值分割
    vmware key
    编程常用命名大全
  • 原文地址:https://www.cnblogs.com/tongzhenhua/p/15594.html
Copyright © 2011-2022 走看看