迷惑的not in问题
select distinct a.kcmc from a left OUTER JOIN b on a.ID=b.CoreID
where kcmc not in
(select distinct kcmc from a right OUTER JOIN b on a.ID=b.CoreID )
a表中包含所有的课程名称,b表中包含今年的课程名称,我要取的数据为历年的课程名称,所以我采用以上方法,奇怪的是结果总为空,但是将上面的语句分开执行,即如果不包含not in那个条件上面取到的值为330条,而后面那个select语句取到150条记录,而且我也查看了,里面数据正确,也确实存在不同的课程,但是一起执行确没有值了。上面代码是我简化后的,但是问题同样存在,请高手帮忙找找问题原因。
------解决方案--------------------可能是因为select distinct kcmc from a right OUTER JOIN b on a.ID=b.CoreID 有null值
select distinct a.kcmc from a left OUTER JOIN b on a.ID=b.CoreID where a.kcmc is null
select distinct kcmc from a right OUTER JOIN b on a.ID=b.CoreID
where kcmc is null
看一下
------解决方案--------------------SQL code
--同意楼上的说法
select distinct kcmc
from a right
OUTER JOIN b on a.ID=b.CoreID
可能有NULL值!
------解决方案--------------------
以前碰到过.
Null值的问题;
------解决方案--------------------
如果有NULL,加多个条件
and col is not null