GM 我刚才发个帖子,再查看帖子  怎么报404言归正卷  情况如下:
   
a表有主叫被叫两个字段 是多对多关系 如下:
 callera calleda
  123 000
  124 111
  125 000
  125 111
  126 222
  127 333
b表有被叫和短信内容两个字段 被叫有重复的 不同被叫短信内容也有相同的
calledb smscontent
000 aaa
111 bbb
000 ccc
222 aaa要得出b表中被叫 对应的a表主叫和b表的内容
calledb callera smscontent
000 123 aaa
111 124 bbb
000 125 ccc
222 126 aaa

解决方案 »

  1.   


    select b.calledb,a.callera,b.smscontent from b,a where b.calledb=a.calleda
    --没测过,不知道可不可以
      

  2.   

    select tb.calledb,ta.callera,tb.smscontent from b tb 
    left join a ta on tb.calledb=ta.calleda
      

  3.   

    多谢大家的踊跃回复
     是用被叫来关联   得出B表中被叫 所对应的A表主叫
     但情况很复杂,B表中的某个被叫  在A表中的被叫里会出现多次  
     而且在A表中 同一个被叫也可能对应多个主叫。 一个主叫也可能对应多个被叫 renkuan719朋友的语句 查出来的结果不对
      

  4.   

    这样可以吧?with t1 as
    (
         select '123' callera,'000' calleda from dual
         union all
         select '124' callera,'111' calleda from dual
         union all
         select '125' callera,'000' calleda from dual
         union all
         select '125' callera,'111' calleda from dual
         union all
         select '126' callera,'222' calleda from dual
         union all
         select '127' callera,'333' calleda from dual
    ),t2 as 
    (
         select '000' calledb,'aaa' smscontent from dual
         union all
         select '111' calledb,'bbb' smscontent from dual
         union all
         select '000' calledb,'ccc' smscontent from dual
         union all
         select '222' calledb,'ddd' smscontent from dual
    )select b.calledb,a.callera,b.smscontent
    from (
          select rownum r,calledb,smscontent,row_number() over(partition by calledb order by rownum) rn
          from t2
         ) b left join 
        (
          select calleda,callera,row_number() over(partition by calleda order by rownum) rn
          from t1
        ) a on b.calledb = a.calleda and b.rn = a.rn
    order by b.r
        calledb callera smscontent
    -------------------------------------
    1 000 123 aaa
    2 111 124 bbb
    3 000 125 ccc
    4 222 126 ddd