子查询结果集不被主查询读取

时间:2018-07-05 11:06:56

标签: sql oracle subquery

我写了这样的查询:

select *
from DATASYNCH_HA_TO_TRG_AUDIT_HIST
where PSX_BATCH_ID IN (select PSX_BATCH_ID
                       from DATASYNCH_HA_TO_TRG_AUDIT_T
                      );

这里,当我单独执行子查询时,它会产生一些值,当我将这些值放在子查询的位置时,主查询也会返回一些值。但是,当我使用整个查询时,它确实没有任何值。怎么可能?

2 个答案:

答案 0 :(得分:0)

希望PSX_BATCH_ID列的数据类型为整数。如果是varchar字段,则修整该值。

选择* 来自DATASYNCH_HA_TO_TRG_AUDIT_HIST 在哪里修剪(PSX_BATCH_ID)          (从DATASYNCH_HA_TO_TRG_AUDIT_T中选择TRIM(PSX_BATCH_ID));

使用JOIN代替使用IN查询

选择* 从DATASYNCH_HA_TO_TRG_AUDIT_HIST A      INNER JOIN DATASYNCH_HA_TO_TRG_AUDIT_T B         开启(A.PSX_BATCH_ID = B.PSX_BATCH_ID)

答案 1 :(得分:0)

真的,对不起,我发现这实际上是数据库问题。我最近在一个过程中运行了查询,一切正常。