表A 
id  name
1   A
2   B
3   C
表B
id  test
2   A
4   B
我想要的结果是
id   name  test
1    A         NULL
2    B        A
3    C        NULL
4    NULL  B
该怎么写sql语句

解决方案 »

  1.   

    select case when a.id is null then b.id else a.id end id,a.name,b.test 
    from a a full join b b on a.id=b.id
      

  2.   

    if object_id('[TBA]') is not null drop table [TBA]
    go
    create table [TBA] (id int,name nvarchar(2))
    insert into [TBA]
    select 1,'A' union all
    select 2,'B' union all
    select 3,'C'if object_id('[TBB]') is not null drop table [TBB]
    go
    create table [TBB] (id int,test nvarchar(2))
    insert into [TBB]
    select 2,'A' union all
    select 4,'B'select * from [TBA]
    select * from [TBB]
    SELECT ISNULL(TBA.id,TBB.id) AS  id,NAME,test
    FROM dbo.TBA
    FULL JOIN TBB ON TBA.id = TBB.id/*
    id NAME test
    1 A NULL
    2 B A
    3 C NULL
    4 NULL B*/
      

  3.   

    MYSQL 里面没有FULL JOIN ,没有ISNULL你可以用LEFT JOIN +RIGHT JOIN来代替FULL JOIN 用IFNULL来代替ISNULL
      

  4.   


    SELECT IFNULL(TBA.id,TBB.id) AS  id,NAME,test FROM tba LEFT JOIN  TBB ON tba.id = TBB.id
    UNION 
    SELECT IFNULL(TBA.id,TBB.id) AS  id,NAME,test FROM tba RIGHT JOIN TBB ON tba.id = TBB.id/*1 A
    2 B A
    3 C
    4 B
    */