有A、B 两张表,现要查询B表中有而A表中没有的数据,如何实现? 
表如下:
A表                                    产品名称    单价  数量合计
A            1       2
B            2       3
C            3       3
D            1       4B表 
产品名称   数量1   数量2  数量3
A            12     23    24
B            23     23    23
E            34     24    35
F            35     0     345
G            45     43    2生成的结果如下:
产品名称  单价  数量合计  数量1  数量2  数量3
E           0       0      34     24    35
F           0       0      35     0     345
G           0       0      45     43    2

解决方案 »

  1.   

    select  
        产品名称,
        单价=0,
        数量合计=0,
        数量1,
        数量2,
        数量3
    from 
        B表
    where 
        not exists(select 1 from A表 where 产品名称=B表.产品名称)
      

  2.   

    不对哟?
    服务器: 消息 156,级别 15,状态 1,行 111
    在关键字 'exists' 附近有语法错误。
      

  3.   

    select  
        产品名称,
        单价=0,
        数量合计=0,
        数量1,
        数量2,
        数量3
    from 
        B表
    where 
        产品名称 not in (select 产品名称 from A表 )
      

  4.   

    not in 也试过了,可是查询出来的结果为空,好像还有什么问题?
      

  5.   

    我晕。1楼的本来就没有问题SELECT 产品名称, 0 AS 单价, 0 AS 数量合计, 数量1, 数量2, 数量3
    FROM B表
    WHERE (NOT EXISTS
              (SELECT 1
             FROM A表
             WHERE 产品名称 = B表.产品名称))
      

  6.   

    ------------
    select B.产品名称,单价=0,数量合计=0,B.数量1,B.数量2,B.数量3 from B where not exists(select * from A where 产品名称=B.产品名称)
      

  7.   

    select  
        产品名称,
        单价=0,
        数量合计=0,
        数量1,
        数量2,
        数量3
    from 
        B表
    where 
        not exists(select 1 from A表 where 产品名称=B表.产品名称)