日期:2014-05-18  浏览次数:20762 次

差异化比较的问题
哪位仁兄帮我看看我的语句有问题么
要是没有问题,为什么,我在做比较的时候,明明在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)

而且,正比和反比都是一样的结果
我知道是哪里出了问题

------解决方案--------------------
SQL code
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