首页 > 解决方案 > 如何先加入两个表然后加入另一个表

问题描述

我有一个 DB2 数据库,我必须加入三个表。我想加入前两个表,在加入前两个表后,我想将加入的表加入另一个第三个表。我尝试使用左连接,但找不到预期的结果。我尝试了以下方法:

select AFJKAR as "ELR_Elig_Redirect_SchdID",
       AFEZAM as "Priority",
       AFTSAS as "ELC_Status",
       AFT7CE as "ELC_From_Date",
       AFT8CE as "ELC_Thru_Date",
       AFTTAS as "ELC_Redirect_Action", 
       AFJLAR as "GPI_List",
       AIZAHA as "GPI_List_ID",
       AILUIG as "GPI_Number",
       AICXHG as "GPI_From_Date",
       AICYHG as "GPI_Thru_Date",
       SUEFC4 as "GPI_ID",
      SUB4T3 as "Drug_Name"
from CLMPRDFIL.RCELCP as RCE
left join CLMPRDFIL.RCGP2P as RCG on RCE.AFJLAR = RCG.AIZAHA 
left join CLMPRDFIL.RCGPIP as RCGP on RCG.AIZAHA = RCGP.SUEFC4;

基本上,我想先加入RCERCGP2P表。加入后,我想通过RCGPIP加入。

标签: sqldb2

解决方案


为此使用相应的优化配置文件/指南。
优化配置文件和指南
您可以在那里指定所需的连接顺序,如果您认为使用特定的连接顺序可以获得更好的性能。
请注意,您应该首先尝试收集有关这些表的统计信息,以使 Db2 优化器使用正确的连接顺序。例如,尝试使用它们的连接键在前 2 个表上创建一个统计视图并收集关于它的统计信息。之后查看原始查询的访问计划以检查是否获得所需的连接顺序。


推荐阅读