CREATE TABLE T1(
uName VARCHAR(20)
yuwen int,
shuxue int,
)CREATE TABLE T2(
uName varchar(20)
dili int,
lishiint,
)INSERT INTO T1
SELECT 'AA',10,10
SELECT 'BB',20,20INSERT INTO T2
SELECT 'CC',30,30
SELECT 'DD',40,40
SELECT 'BB',50,50显示结果uName  yuwen  shuxue dili lishiint
AA     10     10     0    0
BB     20     20     50   50
CC     0      0      30   30
DD     0      0      40   40

解决方案 »

  1.   

    select isnull(a.uName,b.uName) uName,isnull(a.yuwen,0) yuwen,
        isnull(a.shuxue,0) shuxue,isnull(b.dili,0) dili,isnull(b.lishiint,0) lishiint
    from a full join b on a.uName = b.uName
      

  2.   


    CREATE TABLE T1(
    uName VARCHAR(20),
    yuwen int,
    shuxue int
    )CREATE TABLE T2(
    uName varchar(20),
    dili int,
    lishiint int
    )INSERT INTO T1
    SELECT 'AA',10,10 union all
    SELECT 'BB',20,20INSERT INTO T2
    SELECT 'CC',30,30 union all
    SELECT 'DD',40,40 union all
    SELECT 'BB',50,50
    goselect isnull(a.uName,b.uName) uName,isnull(a.yuwen,0) yuwen,
        isnull(a.shuxue,0) shuxue,isnull(b.dili,0) dili,isnull(b.lishiint,0) lishiint
    from t1 a full join t2 b on a.uName = b.uNamedrop table t1,t2/***********************uName                yuwen       shuxue      dili        lishiint
    -------------------- ----------- ----------- ----------- -----------
    AA                   10          10          0           0
    BB                   20          20          50          50
    CC                   0           0           30          30
    DD                   0           0           40          40(4 行受影响)
      

  3.   

    CREATE TABLE T1(
    uName VARCHAR(20),
    yuwen int,
    shuxue int,
    )CREATE TABLE T2(
    uName varchar(20),
    dili int,
    lishi int,
    )INSERT INTO T1
    SELECT 'AA',10,10 union all
    SELECT 'BB',20,20INSERT INTO T2
    SELECT 'CC',30,30 union all
    SELECT 'DD',40,40 union all
    SELECT 'BB',50,50--显示结果--uName yuwen shuxue dili lishiint
    --AA 10 10 0 0
    --BB 20 20 50 50
    --CC 0 0 30 30
    --DD 0 0 40 40
    select ISNULL(T1.uName,T2.uName)AS uName,
    ISNULL(T1.yuwen,0)AS yuwen,
    ISNULL(T1.shuxue,0)AS shuxue,
    ISNULL(T2.dili,0)AS dili,
    ISNULL(T2.lishi,0)AS  lishi
    from T1 FULL JOIN T2 ON T1.uName=T2.uName
     
     drop table T1,T2uName                yuwen       shuxue      dili        lishi
    -------------------- ----------- ----------- ----------- -----------
    AA                   10          10          0           0
    BB                   20          20          50          50
    CC                   0           0           30          30
    DD                   0           0           40          40(4 行受影响)
      

  4.   

    这个DEMO是对了,可正式环境上仍是不对。
      

  5.   

    LZ说跟实际不一样就是你的demo跟实际不一样
      

  6.   


    CREATE TABLE T1(
    uName VARCHAR(20),
    yuwen int,
    shuxue int
    )CREATE TABLE T2(
    uName varchar(20),
    dili int,
    lishiint int
    )INSERT INTO T1
    SELECT 'AA',10,10 union all
    SELECT 'BB',20,20INSERT INTO T2
    SELECT 'CC',30,30 union all
    SELECT 'DD',40,40 union all
    SELECT 'BB',50,50
    go
    select * from T1
    select * from T2
    select isnull(a.uName,b.uName) uName,isnull(a.yuwen,0) yuwen,
        isnull(a.shuxue,0) shuxue,isnull(b.dili,0) dili,isnull(b.lishiint,0) lishiint
    from t1 a full join t2 b on a.uName = b.uNamedrop table t1,t2
    --uName yuwen shuxue
    --AA 10 10
    --BB 20 20
    --uName dili lishiint
    --CC 30 30
    --DD 40 40
    --BB 50 50
    --uName yuwen shuxue dili lishiint
    --AA 10 10 0 0
    --BB 20 20 50 50
    --CC 0 0 30 30
    --DD 0 0 40 40
    这个代码不行么,测试,没问题啊
    =========================================================================================