2017-06-13 2 views
1

私は4つのテーブルがあり、そのうち3つは結合されていますが、第4テーブル(Table_D)からフィールドを取得する必要があります。簡略化のためにこれが動作しているようですが、私は唯一のTable_Cを通じてTable_Aに接続されているTABLE_Dのフィールドを必要とし、彼らは、表A、B、Cと言うD.同じクエリ内の左外部ジョインにないテーブルからフィールドを取得する

Select Distinct A.Field_1, B.Field_2, C.Field_3 
From Table_A 
Left outer join B on A.Field_z= B.Field_z 
Left Outer Join C on A.Field_z= C.Field_z 
where A.Field_z in (1111); 

をすることができます。

どのようにして結合に追加できますか?または私はできますか?

ありがとうございます!

wb

+2

何を試しましたか?あなたはそれだけでうまく参加することができるはずです。 –

答えて

0

を推測するのに役立ちます。 on句は、from句内の任意のエンティティの任意の属性を参照できます。私は、from句の最初のエンティティにのみ後続のエンティティを参加させることができると考えていると思われます。 Table_DTable_Cを通じてTable_Aに関連している場合、あなたはfrom/join/on表示される場合がありますように構築:

select a.thing, b.things, c.thang, d.stuff 
from Table_A a 
left join Table_B b 
    on a.id = b.a_id 
left join Table_C c 
    on a.id = c.a_id 
left join Table D d 
    on d.id = c.d_id 
where 
    a.this = b.that 

「外」という言葉が左に暗示されていることに注意が参加し、構文完了のために必要ではありません。

+1

ありがとう!これは本当に私が必要とするクエリを生成するのに役立ちました。私は今、毎日それを使用しています。 stackoverflowを使って質問をするのは今回が初めてですので、チェックマークを押したと思います。他に何かをする必要があるかどうか私に知らせてください。誰にも感謝してくれました! – BananaChip

+0

緑のチェックマークはそれです!あなたが余裕を感じているなら、上向きの矢印は私の評判にも役立ちます。 –

+0

うれしい –

0

もちろん追加できます。あなたは、ロジックを指定しませんが、このような何か:

Select Distinct A.Field_1, B.Field_2, C.Field_3, D.?? 
From Table_A a Left outer join 
    B 
    on A.Field_z= B.Field_z Left Outer Join 
    C 
    on A.Field_z= C.Field_z Left Outer Join 
    D 
    on . . . 
where A.Field_z in (1111); 

はちょうどあなたが希望条件を入力してください。 が必要です。cdの間の条件では、外部結合がcになり、内部結合になります。

0

私が正しくあなたを理解していれば、私はこれがうまくいくと信じて:

Left Outer Join D on C.Field_z= D.Field_z 
0

あなたがこの方法を試すことができます。それは私がon句はwhere句の本質的にすべての機能を備えています

Select Distinct A.Field_1, B.Field_2, C.Field_3, c.Field_4 
From Table_A 
Left outer join B on A.Field_z= B.Field_z 
Left Outer Join (select C.field_3, d.Field_4, c.Field_z from c inner join d on c.field_z = d.field_z) c on A.Field_z= C.Field_z 
where A.Field_z in (1111); 
関連する問題