楼主: dingjun123

[精华] 复合列NULL问题研究

[复制链接]
论坛徽章:
9
ITPUB9周年纪念徽章
日期:2010-10-08 09:28:522010广州亚运会纪念徽章:击剑
日期:2010-11-03 11:00:36ITPUB十周年纪念徽章
日期:2011-11-01 16:25:512012新春纪念徽章
日期:2012-01-04 11:56:19奥运会纪念徽章:摔跤
日期:2012-08-21 10:04:04优秀写手
日期:2014-02-15 06:00:132014年新春福章
日期:2014-02-18 16:44:08马上有对象
日期:2014-02-18 16:44:08马上加薪
日期:2014-05-19 11:17:08
41#
发表于 2010-11-8 06:16 | 只看该作者
原帖由 凝结水晶 于 2010-7-14 16:40 发表
通常我们用的是外关联,例如:
要找到在test1中存在但是test2不存在的记录
select a.*
from  test1 a,
test2 b
where a.id=b.id(+)
and b.id is null ;


   以上的left连接如果用新语法来改写的话,应该是以下的形式吧??

     select a.*
     from test1 a left outer join test2 b on a.id = b.id where b.id is null;

  这里不因该是from test1 a left outer join test2 b on a.id = b.id and b.id is null;吧?

[ 本帖最后由 ccsnmoracle 于 2010-11-8 06:26 编辑 ]

使用道具 举报

回复
论坛徽章:
1088
金色在线徽章
日期:2007-04-25 04:02:08金色在线徽章
日期:2007-06-29 04:02:43金色在线徽章
日期:2007-03-11 04:02:02在线时间
日期:2007-04-11 04:01:02在线时间
日期:2007-04-12 04:01:02在线时间
日期:2007-03-07 04:01:022008版在线时间
日期:2010-05-01 00:01:152008版在线时间
日期:2011-05-01 00:01:342008版在线时间
日期:2008-06-03 11:59:43ITPUB年度最佳技术原创精华奖
日期:2013-03-22 13:18:30
42#
 楼主| 发表于 2010-11-8 08:05 | 只看该作者
原帖由 ccsnmoracle 于 2010-11-8 06:16 发表


   以上的left连接如果用新语法来改写的话,应该是以下的形式吧??

     select a.*
     from test1 a left outer join test2 b on a.id = b.id where b.id is null;

  这里不因该是from test1 a left outer join test2 b on a.id = b.id and b.id is null;吧?

前者

使用道具 举报

回复
论坛徽章:
4
祖国60周年纪念徽章
日期:2009-10-09 08:28:002010新春纪念徽章
日期:2010-03-01 11:08:262015年新春福章
日期:2015-03-04 14:51:122015年新春福章
日期:2015-03-06 11:57:31
43#
发表于 2010-11-8 08:32 | 只看该作者
学习了,期待新作

使用道具 举报

回复
论坛徽章:
0
44#
发表于 2011-3-27 16:30 | 只看该作者
学习了,以前还真没考虑过复合列的问题。

使用道具 举报

回复
论坛徽章:
1
SQL大赛参与纪念
日期:2011-04-13 12:08:17
45#
发表于 2011-3-28 11:25 | 只看该作者
不错。支持

使用道具 举报

回复
论坛徽章:
2
懒羊羊
日期:2015-03-04 14:52:112015年新春福章
日期:2015-03-06 11:58:18
46#
发表于 2011-3-28 11:50 | 只看该作者
原帖由 dingjun123 于 2010-11-8 08:05 发表


QUOTE:
--------------------------------------------------------------------------------
原帖由 ccsnmoracle 于 2010-11-8 06:16 发表


   以上的left连接如果用新语法来改写的话,应该是以下的形式吧??

     select a.*
     from test1 a left outer join test2 b on a.id = b.id where b.id is null;

  这里不因该是from test1 a left outer join test2 b on a.id = b.id and b.id is null;吧?
--------------------------------------------------------------------------------


前者


但对这个问题好像这两个写法得到的结果应该是一样的吧。
有什么其他的不同吗?请大家分享

噢。前者是连接后过滤,后者是连接时就过滤啦。

[ 本帖最后由 huangzhiyun123 于 2011-3-28 11:55 编辑 ]

使用道具 举报

回复
论坛徽章:
1088
金色在线徽章
日期:2007-04-25 04:02:08金色在线徽章
日期:2007-06-29 04:02:43金色在线徽章
日期:2007-03-11 04:02:02在线时间
日期:2007-04-11 04:01:02在线时间
日期:2007-04-12 04:01:02在线时间
日期:2007-03-07 04:01:022008版在线时间
日期:2010-05-01 00:01:152008版在线时间
日期:2011-05-01 00:01:342008版在线时间
日期:2008-06-03 11:59:43ITPUB年度最佳技术原创精华奖
日期:2013-03-22 13:18:30
47#
 楼主| 发表于 2011-3-28 13:01 | 只看该作者
当然不同啊,后面的会返回很多的结果,on是连接,where是过滤

使用道具 举报

回复
论坛徽章:
1
ITPUB9周年纪念徽章
日期:2010-10-08 09:28:52
48#
发表于 2011-4-28 10:51 | 只看该作者
学习了 以前没有考虑过

使用道具 举报

回复
论坛徽章:
8
2010广州亚运会纪念徽章:体操
日期:2011-05-02 23:25:242010广州亚运会纪念徽章:跆拳道
日期:2011-05-13 08:55:04蛋疼蛋
日期:2011-08-03 13:42:282012新春纪念徽章
日期:2012-01-04 11:53:54复活蛋
日期:2012-02-01 10:07:12咸鸭蛋
日期:2012-02-20 13:03:46马上有车
日期:2014-04-02 13:06:45问答徽章
日期:2014-04-18 18:01:23
49#
发表于 2011-5-6 18:05 | 只看该作者
学习!

使用道具 举报

回复
论坛徽章:
0
50#
发表于 2011-5-30 17:55 | 只看该作者
null...........晕乎

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表