写点什么

Inner Join, Left Outer Join 和 Association 的区别

用户头像
Jerry Wang
关注
发布于: 2021 年 05 月 23 日
Inner Join, Left Outer Join和Association的区别

测试用的 CDS 视图的源代码,第 8 行用 Inner Join 连接 TJ02T, 后者存放了所有系统状态的 ID 和描述。



Inner Join 测试结果:对于那些在 TJ02T 里没有维护描述信息的状态,它们不会出现在结果集里。



把第八行的 Inner Join 改成 Outer Join,测试结果相反:注意观察下图 stat 列值为 E0001 的行项目也出现在了结果集里。



Association 的测试结果同 Left Outer Join 一致。



Association 的底层实现实际上和 Left Outer Join 一致。有两种办法来验证这个结论。

方法 1

在 ABAP Development Studio 里预览一个含有 association 实现的 CDS view,能够在工具里发现该 association 最后是通过 Left Outer Join 实现的。


方法 2

事务码 ST05 里的这个按钮: 显示执行计划,也能显示出 association 底层是由 Left Outer Join 实现的。




要获取更多 Jerry 的原创技术文章,请关注公众号"汪子熙":



发布于: 2021 年 05 月 23 日阅读数: 7
用户头像

Jerry Wang

关注

个人微信公众号:汪子熙 2017.12.03 加入

SAP成都研究院开发专家,SAP社区导师,SAP中国技术大使。

评论

发布
暂无评论
Inner Join, Left Outer Join和Association的区别