1. 程式人生 > >Inner Join, Left Outer Join和Association的區別

Inner Join, Left Outer Join和Association的區別

outer 驗證 sta alt str 圖片 信息 class 能夠

測試用的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的原創技術文章,請關註公眾號"汪子熙"或者掃描下面二維碼:
技術分享圖片

技術分享圖片

Inner Join, Left Outer Join和Association的區別