查询一
select 
MEMBER_NAME,
MEMBER_LEVEL,
(select OPERATE_USER_ID from TBL_OPERATION_HISTORY c where OPERATE_STATUS='N' and OPERATION_RECORD_ID= b.RECORD_ID and  RECORD_ID=(select min(RECORD_ID) from TBL_OPERATION_HISTORY where OPERATE_STATUS='N' and OPERATION_RECORD_ID= b.RECORD_ID)) as OPERATE_USER_ID ,
to_char(OPERATE_DATE,'YYYY/mm/dd') as 添加日期,
OPERATION_TYPE_CODE from TBL_OPERATION_MANAGE b  
where to_char(OPERATE_DATE,'YYYY/mm/dd') 
between  '2009/01/16' and '2009/02/16'查询二select 
MEMBER_NAME,
MEMBER_LEVEL,
(select OPERATE_USER_ID from TBL_OPERATION_HISTORY c where OPERATE_STATUS='N' and OPERATION_RECORD_ID= b.RECORD_ID and  RECORD_ID=(select min(RECORD_ID) from TBL_OPERATION_HISTORY )) as OPERATE_USER_ID ,
to_char(OPERATE_DATE,'YYYY/mm/dd') as 添加日期,
OPERATION_TYPE_CODE from TBL_OPERATION_MANAGE b  
where to_char(OPERATE_DATE,'YYYY/mm/dd') 
between  '2009/01/16' and '2009/02/16'两个查询的区别在于OPERATE_USER_ID 这一项的子查询,请问这两个查询的结果一样吗?

解决方案 »

  1.   

    不一样,
    第一句
    (select min(RECORD_ID) from TBL_OPERATION_HISTORY where OPERATE_STATUS='N' and OPERATION_RECORD_ID= b.RECORD_ID)
    与外表关联查询相等RECORD_ID时,取最小的RECORD_ID
    第二句
    (select min(RECORD_ID) from TBL_OPERATION_HISTORY )
    子查询与外表没有关联,总是取出最小的RECORD_ID