a表有字段linkid
b表有字段linkid
主外键关系 但没有硬性的约束现左连接
select 字段 from a left join b on a.linkid=b.linkid 
我要的效果是a表的linkid字段如果为空,那么b表的字段都为null值
现在的问题是a、b的linkid都有空值,按说查出来的条数应该和a表一致,但这样无效数据就多了很多
求帮助

解决方案 »

  1.   


    select 字段 from a left join b on a.linkid=b.linkid 
    where a.linkid is not null
      

  2.   

    select 字段 from a left join b on isnull(a.linkid,'null')=isnull(b.linkid,'null') 
      

  3.   

    --> 测试数据:@ta
    declare @ta table([id] int,[name] varchar(8))
    insert @ta
    select 1,'zhangSAN' union all
    select 2,'lisi' union all
    select null,'wangwu' union all
    select null,'qwe'--> 测试数据:@tb
    declare @tb table([id] int,[class] varchar(3))
    insert @tb
    select 1,'bbb' union all
    select 2,'aaa' union all
    select null,'ccc' union all
    select null,'zxc' union all
    select null,'asd' union all
    select 3,'ddd'select * from @ta a left join @tb b on a.id=b.id
    /*
    id          name     id          class
    ----------- -------- ----------- -----
    1           zhangSAN 1           bbb
    2           lisi     2           aaa
    NULL        wangwu   NULL        NULL
    NULL        qwe      NULL        NULL*/想要如何处理?
      

  4.   

    select * from a left join b on a.linkid=b.linkid 
    where a.linkid is not null
      

  5.   

    我是楼主
    如果 is not null
    那么a表里的linkid为null的数据都直接不显示了...
    这不是我要的效果啊
      

  6.   

    is not null  或者 isnull 
      

  7.   

    我是楼主 
    如果 is not null 
    那么a表里的linkid为null的数据都直接不显示了... 
    这不是我要的效果啊select * from a left join (select * from b where linkid is not null ) b 
                    on a.linkid=b.linkid