SELECT count(distinct UP_ID)
from rel_table
where ((DOWN_TYPE = 'PH') OR (DOWN_TYPE = 'UI'))AND  (UP_TYPE = 'LH')AND UP_ID IN
(select LH_ID
from rel_lhfunc_table
where ID
in
(
  select ID
  from function_table
  where name='A1'
  )
);其中第4行的UP_ID和第5行的LH_ID是完全一样的同一个东西。
1、我能不能用这样的语句完成嵌套啊?因为以前用的都是名字一样的,现在却不同。2、我试过了和预想的不一样,请问是我逻辑有问题,还是语句有问题啊?

解决方案 »

  1.   

    顶一下
    是第3行的UP_ID和第4行的LH_ID
      

  2.   

    其中第4行的UP_ID和第5行的LH_ID是完全一样的同一个东西。 
    当然是一样的了,要不然也不可能这样写SQL 呀。
    感觉这样写很好,没有语法上的问题。
    除非是业务变更了需要修改。
      

  3.   

    SELECT count(distinct UP_ID)
    from rel_table a inner join rel_lhfunc_table b on a.UP_ID=b.LH_ID inner join function_table c on b.ID=c.ID and c.name='A1'
    where (DOWN_TYPE = 'PH' OR DOWN_TYPE = 'UI') AND  UP_TYPE = 'LH';看看这样写如何。