上图是子查询的,单独执行可以查询到结果集,如下图sql为那么问题来了IN的后面子查询结果集有29条数据,总查询为结果集就是空的但是从子查询结果集里面任何一条 用=号来执行都有数据
第一次发帖,不知道有没有描述清楚,大佬们帮忙解释下

解决方案 »

  1.   

    SQL的可阅读性很不好,
    子查询有数据,单一的查询也有数据,按理来说,完整的两重查询也应该有数据。
    所以我直接怀疑: 你的单独子查询语句和最终运行的子查询语句不一样
      

  2.   

    使用exists 
    另外in 的时候注意是否有空值,记得nvl处理下。
      

  3.   


    图中有显示执行的sql,子查询确实是一样的,我的疑问跟你想的一样,为什么单独都可以,结合其来就不行了呢
      

  4.   

    你这得发数据库-oracle版块去
      

  5.   

    不要相信看到的东西,单条查没问题,说明attendance_ilink表中确实有wangxiang1这些数据。但是子查询中你看到的却未必和你输入的wangxiang1是一致的。怀疑子查询中的数据编码不一致,但是拷贝出来会发生变化。直接查询子查询的数据里是否有wangxiang1看看,应该会没有。