哪位仁兄帮我看看我的语句有问题么
要是没有问题,为什么,我在做比较的时候,明明在customer里几个有差异的数据,可是在做比较的时候就是显示不出来~~~select b.chanpin
from customer a left join zy b on a.char01=b.chanpin
where b.chanpin not in (select a.char01 from customer)而且,正比和反比都是一样的结果
我知道是哪里出了问题

解决方案 »

  1.   

    select a.* from customer a where not exists(select 1 from zy b where b.chanpin = a.char01)select b.* from zy b where not exists(select 1 from customer a where b.chanpin = a.char01)
      

  2.   

    select a.* from customer a where not exists(select 1 from zy b where b.chanpin = a.char01)select b.* from zy b where not exists(select 1 from customer a where b.chanpin = a.char01)
    select a.* from customer a where char01 not in (select chanpin from zy b)select b.* from zy b where chanpin not in (select char01 from customer a)上面两段都行.
      

  3.   

    我只比较表里的一列的数据,customer中有  而在zy中没有的数据
      

  4.   

    你差异比较不应该用left join.left join是左连接,从右往左比较,不存在的为null.
      

  5.   

    SELECT  b.chanpin   
    FROM    customer a
            LEFT JOIN zy b ON a.char01 = b.chanpin
    --从上面看,就是取了所有zy与customer中都有的行b.chanpin          
    WHERE   b.chanpin NOT IN ( SELECT   a.char01
                               FROM     customer )
    --再从这些行里面筛选不在customer表中的,所以为0行--比较差异的话SELECT a.* FROM customer a WHERE NOT EXISTS(SELECT 1 FROM zy b WHERE b.chanpin = a.char01)SELECT char01 FROM customer
    EXCEPT
    SELECT chanpin FROM zy