
Terry Purcell 谈外连接(第一部分)
热 荐
【字体:小 大】
Terry Purcell 谈外连接(第一部分)
作者:- 文章来源:- 点击数:856 更新时间:2006-4-22 
Terry Purcell
顾问
2001 年 12 月 Terry Purcell 是在澳大利亚堪培拉举行的 2001 IDUG 亚太地区会议的“Best Overall Speaker Award”的获奖者,他将在这篇文章(分两个部分)的第一部分中,就如何在外部连接中编写谓词提供一些建议。
您在何处编写谓词?(第 1 部分)
阅读第 2 部分
自 SQL 构造在 DB2 for OS/390® V6 中修订之后,如果我相信有一种 SQL 构造已经造成了最多的疑惑,那一定就是外连接。
V6 扩展了在 ON 子句中编写谓词的能力,并引入了大量其它的优化和查询改写方面的增强。虽然增强语法的确增加了外连接的潜在用法,但这也意味着需要去理解更多的内容。而语法也与它在 UNIX®、Linux、Windows 和 OS/2® 平台上的兄弟更加接近,使得在 DB2 系列中更容易保持 SQL 编码的一致性。
这篇文章由两个部分组成,我试图在文章中为编写外连接总结出一个指南以实现两个目的: 最重要的目标是获得正确的结果。 其次,考虑用不同的方法编写谓词的性能含义。
第 1 部分是关于外连接的更简单构造,就在 ON 和 WHERE 子句中编写谓词的效果进行简单的比较。在第 2 部分,我会涉及更复杂的主题,如简化外连接和嵌套外连接。
本文中的例子使用了取自 DB2 通用数据库(UDB)(非 OS/390)样本数据库的摘录。 图 1 中的数据是一整张表的子集。为了满足所有外连接中组合的需要,Project 表中含有 PROJNO = 'IF2000' 的行已被更新为设置 DEPTNO = 'E01' 。
对于 z/OS® 和 OS/390 的用户,表名将有所不同:
工作站上 DB2 表的名称 OS/390 和 z/OS 版本的 DB2 表的名称 EMPLOYEE EMP DEPARTMENT DEPT PROJECT PROJ
