使用SQL内部联接来连接第二个选择语句

时间:2017-01-12 03:20:40

标签: sql db2 inner-join

我有一个表中的两个不同的引用列连接到另一个表中的单个匹配列。从这个连接表中引入几个列,我可以弄清楚如何使用两个不同的引用列两次拉出相同的列的唯一方法是在第二个select语句中使用内连接。将此与所有其他列和连接一起使用,超出您在下面看到的内容,使数据拉得太慢,无法提取我所提取的数据量。在那里我可以用第二个选择语句执行以下操作吗?

Select *
From
    (Select Distinct
         P1736.LL_SHP_LEG.LL_SHP_LEG_PCK_LOC_ID,
         P1736.LL_LOC_DTL.LL_LOC_NM "Pick Name",
         P1736.LL_LOC_DTL.LL_CITY_AD "Pick City",
         P1736.LL_LOC_DTL.LL_ST_AD "Pick State",
         P1736.LL_LOC_DTL.LL_ZIP_AD "Pick Zip",
         P1736.LL_SHP_LEG.LL_SHP_LEG_DROP_LOC_ID
     From  
         P1736.LL_SHP_LEG
     Left Outer Join 
         P1736.LL_LOC_DTL On P1736.LL_SHP_LEG.LL_SHP_LEG_PCK_LOC_ID = P1736.LL_LOC_DTL.LL_LOC_RFNC_ID
     Where 
         (P1736.LL_SHP_LEG.LL_LD_EXTRT_ID > '43000000')) Q1
Inner Join
    (Select Distinct
         P1736.LL_SHP_LEG.LL_SHP_LEG_DROP_LOC_ID,
         P1736.LL_LOC_DTL.LL_LOC_NM "Drop Name",
         P1736.LL_LOC_DTL.LL_CITY_AD "Drop City",
         P1736.LL_LOC_DTL.LL_ST_AD "Drop State",
         P1736.LL_LOC_DTL.LL_ZIP_AD "Drop Zip"
     From 
         P1736.LL_SHP_LEG
     Left Outer Join 
         P1736.LL_LOC_DTL On P1736.LL_SHP_LEG.LL_SHP_LEG_DROP_LOC_ID = P1736.LL_LOC_DTL.LL_LOC_RFNC_ID
     Where 
         (P1736.LL_SHP_LEG.LL_LD_EXTRT_ID > '43000000')) Q2 On Q1.LL_SHP_LEG_DROP_LOC_ID = Q2.LL_SHP_LEG_DROP_LOC_ID

1 个答案:

答案 0 :(得分:0)

你在连接条件下尝试过OR吗?由于我没有数据,我无法验证,如果以下查询有帮助,请告诉我

Select Distinct
P1736.LL_SHP_LEG.LL_SHP_LEG_PCK_LOC_ID,
P1736.LL_LOC_DTL.LL_LOC_NM "Pick Name",
P1736.LL_LOC_DTL.LL_CITY_AD "Pick City",
P1736.LL_LOC_DTL.LL_ST_AD "Pick State",
P1736.LL_LOC_DTL.LL_ZIP_AD "Pick Zip",
P1736.LL_SHP_LEG.LL_SHP_LEG_DROP_LOC_ID
From P1736.LL_SHP_LEG
Left Outer Join P1736.LL_LOC_DTL
On ((P1736.LL_SHP_LEG.LL_SHP_LEG_PCK_LOC_ID = P1736.LL_LOC_DTL.LL_LOC_RFNC_ID) 
     OR (P1736.LL_SHP_LEG.LL_SHP_LEG_DROP_LOC_ID = P1736.LL_LOC_DTL.LL_LOC_RFNC_ID))
Where (P1736.LL_SHP_LEG.LL_LD_EXTRT_ID > '43000000')