a 表
full outer join
b 表a 表 10万条数据
b 表 100万条数据但是现在查出来 只有10万条数据!

解决方案 »

  1.   

    跟你的ON有关,ON 1=0的话一条记录都没有
      

  2.   


    select a.*,isnull(a.name,b.name)as name from a
    full join b
    on a.id=b.id  --事例
      

  3.   

    IF OBJECT_ID('A') IS NOT NULL DROP TABLE A
    IF OBJECT_ID('B') IS NOT NULL DROP TABLE B
    GO
    CREATE TABLE A(COL1 INT)
    CREATE TABLE B(COL1 INT)
    INSERT INTO A
    SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3
    INSERT INTO B
    SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 1SELECT A.*,B.* FROM A
    FULL JOIN B ON  A.COL1=B.COL1
    --这里最少4条SELECT DISTINCT A.*,B.* FROM A
    FULL JOIN B ON  A.COL1=B.COL1
    --这里就小于4条SELECT A.*,B.* FROM A
    FULL JOIN B ON  A.COL1=B.COL1
    WHERE 1=0
    --这样就空了
      

  4.   

    SELECT A.*,B.* FROM A
    FULL JOIN B ON  A.COL1=B.COL1
      

  5.   

    除非你full outer join后面又加了where语句,这样就会过滤掉一些数据。
    你可以把where的条件放在on后面看看返回多少语句