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


  • 相关阅读:
    Lightoj---1030
    hdu---2091---空心三角形
    hdu---2037---今年暑假不AC
    将ant Design本地化,可通过link以及script直接引入html中使用
    js 解析json
    解决ant Design dva ajax跨越请求 (status=0)
    ubantu 14.04中安装npm+node.js+react antd
    ubantu中搭建virtualenv+python3.4+flask
    Linux ubantu中安装虚拟/使用环境virtualenv以及python flask框架
    页面中去除浮动 clear:both
  • 原文地址:https://www.cnblogs.com/tongzhenhua/p/15594.html
Copyright © 2011-2022 走看看