有两个表A,B   
A   
name,category   
1                       1   
2                       1   
3                       1   
4                       2   
5                       2   
B   
fen,name,rq 
100     1       2007 
我想得到这样的结果:   
name,category,fen,rq 
1             1             100   2007 
2             1             null  null
3             1             null  null

解决方案 »

  1.   

    create table A(name int , category int)
    insert into A values(1, 1 )
    insert into A values(2, 1 )
    insert into A values(3, 1 )
    insert into A values(4, 2 )
    insert into A values(5, 2 )
    create table B(fen int , name int , rq int)
    insert into B values(100, 1 , 2007)
    goselect a.* , b.fen , b.rq from a left join b on a.name = b.name where a.category = 1drop table A,B/*
    name        category    fen         rq          
    ----------- ----------- ----------- ----------- 
    1           1           100         2007
    2           1           NULL        NULL
    3           1           NULL        NULL
    (所影响的行数为 3 行)
    */
      

  2.   

    这个不太正确,如果我在B表再加一条记录insert into B values(100, 2 , 2003)那结果就不是这样了
      

  3.   

    create table A(name int , category int)
    insert into A values(1, 1 )
    insert into A values(2, 1 )
    insert into A values(3, 1 )
    insert into A values(4, 2 )
    insert into A values(5, 2 )
    create table B(fen int , name int , rq int)
    insert into B values(100, 1 , 2007)
    insert into B values(100, 2 , 2003) 
    goselect a.* , b.fen , b.rq from a left join b on a.name = b.name where a.category = 1drop table A,B/*
    name        category    fen         rq          
    ----------- ----------- ----------- ----------- 
    1           1           100         2007
    2           1           100         2003
    3           1           NULL        NULL(所影响的行数为 3 行)
    */