第一个sql:
select count(*)
from t_baidu_p_units u
left outer join t_baidu_p_plans p on u.p_plan_id = p.id
and p.id = 3176
where p.id is null
order by u.p_plan_id desc
结果:5032
如果把“where p.id is null”注释掉结果是:5271
在t_baidu_p_plans中,id没有为null的
对这个结果不理解,求教下
select count(*)
from t_baidu_p_units u
left outer join t_baidu_p_plans p on u.p_plan_id = p.id
and p.id = 3176
where p.id is null
order by u.p_plan_id desc
结果:5032
如果把“where p.id is null”注释掉结果是:5271
在t_baidu_p_plans中,id没有为null的
对这个结果不理解,求教下
解决方案 »
- 我是菜鸟,求解答
- imp 出错
- 单行子查询返回多行
- Oracle 连接错误;ORA-27101: shared memory realm does not exist
- where 条件怎么不起作用呢
- 可否使用觸發器剔除批量插入的數據中的重複主鍵數據而不引發異常
- 急!!!!!!!oracle导出数据提示exp-00056问题
- 急,过程调用问题
- 我装了10g,怎么没有像 DBA Studio/8i ,Management Console/9i这样的管理工具啊?
- oracle rac 配置 virtual IP ,VIP 能在节点上PING通吗
- 多字段组合约束的问题
- 聚合函数怎么用的啊,最好举个例子,马上结贴
select u.id,u.p_plan_id,u.unit_name,p.id,p.plan_name
from t_baidu_p_units u
left outer join t_baidu_p_plans p on u.p_plan_id = p.id
and p.id = 3176
where p.id is null
order by u.p_plan_id desc
查询的结果中“p.id,p.plan_name”都为空,但是结果中没有p.id=3176的列
将left outer join改成inner join或将and p.id=3176移到where下看看
join on后面的是关联条件
where里的是过滤条件