首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 网页设计 | 平面设计 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
中国IT实验室Oracle频道
中国IT教育
Google
首页 入门基础 安装配置 体系架构 PLSQL 备份恢复 性能调优 开发技术 资讯动态 考试认证 下载 专题 讨论
您现在的位置: 中国IT实验室 >> Oracle >> 入门基础 >> 正文

Oracle中左右连接外表带条件的写法

研究时测试用的例子:xtest2是基表,xtest1是外表表结构及数据如下
xtest1(外表)
 company_code  item_code item_name   cost_class
 00  item1  name1  f
 00  item2  name2  m
 01  item1  name1  m
 01  item2  name2  f
xtest2(基表)
 company_code  item_code t1   t2
 00  item1  aa  bb
 00  item2  cc  dd
 00  item3  ee  ff
 null  null  null  null

 

要求:将xtest2中的数据全部显出,根据xtest2中的公司号及物料代码去xtest1表里找对应的物料名,但是有一个附加条件,就是xtest1表里必须是cost_class='f'的才能写到最后的结果集中。最后实验成功的sql如下:

select  a.item_code,b.item_name from xtest2 a,xtest1 b where a.item_code = b.item_code(+) and b.cost_class(+)='f'
 and a.company_code = b.company_code(+)

总结:b表的匹配条件还要加一个右连接,要不无法得到想要的结果。

这个语句其实还有个问题,就是如果b表中符合条件的记录比a表多,那得到的结果集会有误,但是在我要的程序结果不用考虑这种情况,哈哈,试验成功!!!开始写程序。

【责编:Chuan】

中国IT教育

相关产品和培训
文章评论
 友情推荐链接
 认证培训
 专题推荐

 ·Oracle数据库备份与恢复之六大总结
 ·JAVA的应用编程接口——JAVA API详解…
 ·Linux Shell学习技术专题[上]…
 ·WEB开发——ASP.NET和PHP、JSP究竟学哪个
 ·五步带你入门XML
 ·关于Java框架技术专题
 ·XML全攻略技术专题
 ·JAVA开源技术介绍专题
 ·Java嵌入式开发之J2ME技术专题
 ·超前体验 Oracle 11g的5个新特性…
 今日更新
 社区讨论
 博客论点
 频道精选
 Oracle频道相关导航