not in运行和预计的结果不一样
我首先导入了两个表yy和表js,有相同的列bh,其中表yy的bh列有一些表js的bh列中没有的数据,现在想跳出这些yy表有但js表没有的数据,语言如下
SELECT *
FROM yy
WHERE bh not in(select bh from js)
ORDER BY bh;
但运行后一行数据也没有,为什么?表yy的bh列数据有的重复,表js的bh列的数据不重复.我觉得应该与这个没关系吧
------解决方案--------------------表yy的bh列数据有的重复,表js的bh列的数据不重复.?
要YY表BH列的数据在JS表的BH列里没有才能查出来呢,你只是重复,但在JS表的BH列里还是有相应的记录啥。
------解决方案-------------------- 用判断真假方式
select * from yy where not exists(select 1 from js where bh=yy.bh) order by hb
------解决方案--------------------SELECT *
FROM yy
WHERE bh not in(select bh from js WHERE bh IS NOT NULL) /*加上NOT NULL*/
ORDER BY bh
----或者
SELECT DISTINCT a.*
FROM yy as a
LEFT JOIN js as b on a.bh = b.bh
WHERE b.bh IS NULL
ORDER BY a.bh
------解决方案--------------------原因就是bb表中有空值,上面的回复真的是太好拉