表1
ID1    ID2
1      2
2      3
4      2
5      1
...   ...
表2
ID    NAME
1     xxx1
2     xxx2
3     xxx3
4     xxx4
5     xxx5
...   ...
要求查处的情况如下所示
NAME1    NAME2
xxx1     xxx2
xxx2     xxx3
xxx4     xxx2
xxx5     xxx1
...      ...
跪求高人指点。

解决方案 »

  1.   

    select a.id1 name1,b.name name2
    from tb1 a,tb2 b
    where a.id2=b.id
      

  2.   

    select a.name, b.name from tab2 a, tab2 b, tab1 c where c.id1=a.id1 and c.id2=b.id2;
      

  3.   

    上面的写错,应该是select a.name, b.name from tab2 a, tab2 b, tab1 c where c.id1=a.id and c.id2=b.id;
      

  4.   

    前面,也提问了这个问题,当时我就为了方便就只写了这样的
    表1 
    ID1    ID2 
    1      2 
    ...    ...
    表2
    ID      NAME
    1       XXX1
    2       XXX2
    ...     ...
    要求查询结果如下所示
    NAME1     NAME2
    XXX1      XXX2
    ...       ...
    见一个“高人”这样写道:
    select max(case when a.id1=1 and a.id1=b.id then b.name) as name1,
           max(case when a.id2=2 and a.id2=b.id then b.name) as name2
    from tab1 a,tab2 b
    我直接被雷倒。。
      

  5.   

    写个oracle函数GetName,传入参数ID,得到Name
    然后
    select GetName(ID1),GetName(ID2) from table1
      

  6.   

    select 
      (select name from 表2 where id = t.id1) name1,
      (select name from 表2 where id = t.id2) name2
    from 表1 t
      

  7.   

    create table tb1(ID1 int,   ID2 int) 
    insert into tb1 values(1 ,     2) 
    insert into tb1 values(2 ,     3) 
    insert into tb1 values(4 ,     2) 
    insert into tb1 values(5 ,     1) 
    create table tb2(ID int,   NAME varchar2(10)) 
    insert into tb2 values(1 ,   'xxx1') 
    insert into tb2 values(2 ,   'xxx2') 
    insert into tb2 values(3 ,   'xxx3') 
    insert into tb2 values(4 ,   'xxx4') 
    insert into tb2 values(5 ,   'xxx5') select 
      (select name from tb2 where id = t.id1) name1,
      (select name from tb2 where id = t.id2) name2
    from tb1 tdrop table tb1
    drop table tb2/*
    xxx1 xxx2
    xxx2 xxx3
    xxx4 xxx2
    xxx5 xxx1
    */