我数据库中有3个表,表1,表2,表3 
表1结构 
分公司 
  1 
  2 
  3 
  4 
  5 
  6 表2结构 
分公司   违纪 
    2      2 
    3      10 
    5      7 表3结构   表扬 
    1        2 
    2        4 
    4        2 
    5        10 
    6        3 如何查询得到 
分公司     违纪     表扬 
    1                    2 
    2        2           4 
    3        10 
    4                    2 
    5        7           10 
    6                    3 

解决方案 »

  1.   

    select * from T1
    left join T2 on T1.分公司=T2.分公司
    left join T3 on T1.分公司=T3.分公司
      

  2.   

    select a.分公司
           ,b.违纪
           ,c.表扬
    from 表1 a 
      left join 
         表2 b
        on a.分公司=b.分公司
       left join
         表3 c
        on a.分公司=c.分公司 
      

  3.   

    select a.分公司
           ,违纪=isnull(b.违纪,'')
           ,表扬=isnull(c.表扬,'')
    from 表1 a 
      left join 
         表2 b
        on a.分公司=b.分公司
       left join
         表3 c
        on a.分公司=c.分公司 
      

  4.   


    create table T1
    (
    分公司 int
    )insert T1 select     1   
    insert T1 select     2   
    insert T1 select     3   
    insert T1 select     4   
    insert T1 select     5   
    insert T1 select     6   
    create table T2
    (
    分公司 int,
    违纪   int
    )
    insert T2 select         2,             2   
    insert T2 select         3,             10   
    insert T2 select         5,             7   
    create table T3
    (
    分公司 int,
    表扬   int
    )insert T3 select         1,                 2   
    insert T3 select         2,                 4   
    insert T3 select         4,                 2   
    insert T3 select         5,                 10   
    insert T3 select         6,                 3   select T1.分公司,T2.违纪,T3.表扬
    from T1
    left join T2 on T1.分公司=T2.分公司
    left join T3 on T1.分公司=T3.分公司
      

  5.   


    --result
    分公司         违纪          表扬          
    ----------- ----------- ----------- 
    1           NULL        2
    2           2           4
    3           10          NULL
    4           NULL        2
    5           7           10
    6           NULL        3(所影响的行数为 6 行)
      

  6.   

    select T1.分公司,isnull(T2.违纪,0),isnull(T3.表扬,0)
    from T1
    left join T2 on T1.分公司=T2.分公司
    left join T3 on T1.分公司=T3.分公司
      

  7.   

    如果在表2,表3中[分公司]也不重复的话
    select a.分公司,b.违纪,c.表扬
    from (表1 a left join 表2 b on a.分公司=b.分公司)
    left join 表3 c on a.分公司=c.分公司
      

  8.   

    declare @t1 table(分公司 int)
    insert @t1 select 1 union all select 2
    union select 3 union all select 4
    union select 5 union all select 6declare @t2 table(分公司 int,违纪 int)
    insert @t2 select 2,2 union all select 3,10 
    union all select 5,7declare @t3 table(分公司 int,表扬 int)
    insert @t3 select 1,2 union all select 2,4
    union all select 4,2 union all select 5,10
    union all select 6,3select a.分公司,'违纪'=isnull(b.违纪,''),'表扬'=isnull(c.表扬,'')
    from @t1 a left join @t2 b on a.分公司=b.分公司
         left join @t3 c on a.分公司=c.分公司
    /*
    所影响的行数为 3 行)
    (所影响的行数为 5 行)分公司         违纪          表扬          
    ----------- ----------- ----------- 
    1           0           2
    2           2           4
    3           10          0
    4           0           2
    5           7           10
    6           0           3(所影响的行数为 6 行)
    */
      

  9.   


    如果您问题已经得解决,请您及时结帖给分,以感谢帮助您的朋友。 结帖方法:点击版面右上方或右下方 <管理> ,进入页面后就可以输入密码,分别给分,结帖。 
        或参考:http://www.csdn.net/help/over.asp
      

  10.   


    如果您问题已经得解决,请您及时结帖给分,以感谢帮助您的朋友。 结帖方法:点击版面右上方或右下方 <管理> ,进入页面后就可以输入密码,分别给分,结帖。 
        或参考:http://www.csdn.net/help/over.asp
      

  11.   

    select T1.分公司,T2.违纪,T3.表扬
    from T1
    inner join T2 on T1.分公司=T2.分公司
    inner join T3 on T1.分公司=T3.分公司