2017-01-12 12 views
1

別のテーブルの一致する1つの列に結合する2つの異なる参照列があるテーブルから取得されています。 2つの異なる参照列を使用して同じ列を2回プルする方法を理解できる唯一の方法は、この結合された表の複数の列を使用して、2番目のselect文で内部結合を使用することです。これを他のすべての列や結合と組み合わせて使用​​すると、下に示したものを超えると、データが引き寄せられるデータ量が非常に遅くなりすぎてしまいます。もう離れていますか?私は2番目のselectステートメントを使って以下を行うことができますか?SQL inner-joinを使用して2番目の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 

答えて

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') 
+0

を助けなら、私に知らせてください、あなたにAbhilashありがとうございますが、オンを使用して好きで、それが唯一のPCK_LOC_IDに接続します。 PCKとDROPの両方の参照ではありません。 – OAU

+0

ORまたはANDを使用しましたか? –

+0

4つの場所の列をorを使用して追加しましたが、選択するのではなく名前を変更しました。それは難しい部分ですが、私はそれぞれのリファレンスから同じカラムを2回一度抜き取る必要があります。 P1736.LL_LOC_DTL.LL_LOC_NM "Pick Name"、P1736.LL_LOC_DTL.LL_LOC_NM "Drop Name" ... – OAU

関連する問題