有两张表 A , BA:
   ID      TYPE       DETAIL
   101     类型1     类型101详细
   201     类型2     类型201详细
   103     类型1     类型103详细
   104     类型1     类型104详细B:
    ID_1    ID_2 
    101     201
    102     202
    103     203
     ...想实现同时选出 B 中两个字段在 A 中对应的 detail 信息select detail_1, detail_2 ... from ...   detail_1       detail_2
  类型101详细    类型201详细
  类型102详细    类型202详细
  类型103详细    类型203详细

解决方案 »

  1.   

    SELECT A1.DETAIL DETAIL1 A2.DETAIL DETAIL2 FROM A A1, A A2, B WHERE B.ID_1 = A1.ID(+) AND B.ID = A2.ID(+)
      

  2.   

    非常感谢  awenhao(骑着蝌蚪找青蛙)
      

  3.   

    想继续请教 awenhao(骑着蝌蚪找青蛙)SQL 语句中 (+) 用法是怎么样的呢? 谢谢
      

  4.   

    TO: awenhao(骑着蝌蚪找青蛙)查询出来的结果存在重复记录!!!  怎么回事?
      

  5.   

    (+)就是表示外联接,这样和你说吧,我不打喜欢用专业术语弄得人糊里糊涂,
    比如两个表
    A                                              BID     NAME                                    ID                 SEX
    1      AAA                                     1                  0
    2      BBB                                     2                  1
    3      CCC                                     3                 0
    5      DDD                                     4                 0
    如果你想知道一个人的名字和性别如果 where a.id = b.id
    只得到id 是 1 2 3 的结果,因为必须完全相等
    如果 a.id = b.id(+)表示只要a表有的,如果b表有,则显示,否则显示a,b表的显示null
    也就是说,只要知道姓名不知道性别的也要显示
    如果 a.id(+) = b.id正好相反
    也就是说,只要有性别信息,不知道姓名也要显示
      

  6.   

    SELECT A1.DETAIL DETAIL1 A2.DETAIL DETAIL2 FROM A A1, A A2, B WHERE B.ID_1 = A1.ID(+) AND B.ID_2 = A2.ID(+)如果你的a表id有重复或者b的两个id任意一个有重复
    都会造成结果的重复,这个就没有办法了
    你只能用 distinct去处重复了