有类似如下表:(其中1ID,2ID,3ID为关键字)表1:  1ID,  1Name   2ID    3ID
       1     张三    1      1
       2     李四    1      2
       3     王五    2      1表2:  2ID,   2Name
       1      北京
       2      天津       表3:  3ID,   3Name
       1      中国
       2      美国需得出如下表:
      1ID,  1Name   2ID    3ID    2Name     3Name
       1     张三    1      1      北京      中国
       2     李四    1      2      北京      美国
       3     王五    2      1      天津      中国

解决方案 »

  1.   

    select 
        a.*,
        b.[2name],
        c.[3name] 
    from [表1] a 
    left join [表2] b on a.[2ID]=b.[2ID]
    left join [表3] c on a.[3ID]=c.[3ID]
      

  2.   

    select a.*, b.[2Name], c.[3Name]
    from 表1 a join 表2 b on a.[2ID] = b.[2ID]
    join 表3 c on a.[3ID] = b.[3ID]
      

  3.   

    create table a
    (
    [1ID] int ,
    [1Name] varchar(10),
    [2ID] int,
    [3ID] int,
    )create table b
    (
    [2ID] int ,
    [2Name] varchar(10),
    )create table c
    (
    [3ID] int ,
    [3Name] varchar(10),
    )insert into a 
    select       1   , ' 张三',    1   ,   1 union all 
    select       2 ,    '李四',    1 ,     2 union all
    select       3     ,'王五'  ,  2      ,1insert into b 
    select        1      ,'北京' union all
    select        2      ,'天津'    insert into c
    select        1      ,'中国' union all
    select        2      ,'美国'
    --
    select a.*, b.[2Name], c.[3Name]
    from  a 
    join  b on a.[2ID] = b.[2ID]
    join  c on a.[3ID] = c.[3ID]1ID         1Name      2ID         3ID         2Name      3Name      
    ----------- ---------- ----------- ----------- ---------- ---------- 
    1            张三        1           1           北京         中国
    2           李四         1           2           北京         美国
    3           王五         2           1           天津         中国(所影响的行数为 3 行)drop table a ,b ,c
      

  4.   

    楼主说的这种情况存在,表2:  2ID、表3:3ID如果不是唯一的才会出现这种情况