select imsi from NX_SUBSCRIBERS where   hlr_id= 0 and MISC_SERV_SEND_A_NOTIF_CD=0select msisdn from nx_bs_code where imsi in ( select imsi from NX_SUBSCRIBERS where   hlr_id= 0 and MISC_SERV_SEND_A_NOTIF_CD=0)
这是两条sql语句,,能用一条sql语句得到下面的结果么?
我最终想要的结果是
imsi     msisdn
222      33333
222      33333Oracle

解决方案 »

  1.   

    那你直接用第二句就行了,
    select msisdn,imsi  from nx_bs_code where imsi in ( select imsi from NX_SUBSCRIBERS where   hlr_id= 0 and MISC_SERV_SEND_A_NOTIF_CD=0)
      

  2.   

    没看明白意思?你第一个sql得到的什么结果?
    第2个sql得到的是什么结果?
      

  3.   

    我X,看出啥意思了,直接用下面的sql吧:
    select t1.imsi, t2.msisdn
      from NX_SUBSCRIBERS t1
      left join nx_bs_code t2
        on t1.imsi = t2.imsi
     where hlr_id = 0
       and MISC_SERV_SEND_A_NOTIF_CD = 0
      

  4.   

    select a.msisdn,a.imsi from nx_bs_code a left join NX_SUBSCRIBERS b on a.imsi=b.imsi where a.hlr_id= 0 and b.MISC_SERV_SEND_A_NOTIF_CD=0  
      

  5.   

    select t1.imsi, t2.msisdn  from NX_SUBSCRIBERS t1  inner join nx_bs_code t2    on t1.imsi = t2.imsi where hlr_id = 0   and MISC_SERV_SEND_A_NOTIF_CD = 0 这个不能用LeftJoin。必须要用INNERJOIN
      

  6.   

    楼上的查询会有重复记录吧,
    select imsi, msisdnfrom nx_bs_code where imsi in (select imsi from NX_SUBSCRIBERS where   hlr_id= 0 and MISC_SERV_SEND_A_NOTIF_CD=0)
     
      

  7.   

    select imsi.msisdn from nx_bs_code where imsi in ( select imsi from NX_SUBSCRIBERS where   hlr_id= 0 and MISC_SERV_SEND_A_NOTIF_CD=0)