2017-12-13 13 views
-1

ネストされた結合を試みました。SQL join - 3つのネストされたレベルと最も深いレベルにはデータが表示されません

私はそれらのそれぞれをテストして動作しますが、一緒に置くと最も深い結合データは表示されません。

これはt1(LEFT JOIN BUG ON RELEASES.REL_ID = BUG.BG_TARGET_REL OR RELEASES.REL_ID = BG_DETECTED_IN_REL) AS t1)からのものです。私は image

Select 
    // REQ 
    REQ.RQ_REQ_ID /*Exigence.ID exigence*/, 
    REQ.RQ_FATHER_ID /*Exigence.Dossier parent*/, 

    // REQ_COVER 
    t0.RC_ENTITY_ID /*Couverture de l'exigence.ID entité de couverture*/, 
    t0.RC_ITEM_ID /*Couverture de l'exigence.ID unique d'élément de couverture*/, 
    t0.RC_REQ_ID /*Couverture de l'exigence.Exigence*/, 
    // TEST 
    t0.TS_TEST_ID /*Test.ID test*/, 

    // REQ_RELEASES 
    t2.RQRL_REQ_ID /*Lien des exigences aux mises à jour.ID exigence*/, 
    t2.RQRL_ID /*Lien des exigences aux mises à jour.ID*/, 
    t2.RQRL_RELEASE_ID /*Lien des exigences aux mises à jour.ID mise à jour*/, 
    // RELEASES 
    t2.REL_ID /*Mise à jour.ID mise à jour*/, 

    // BUG 
    t2.BG_BUG_ID 

    from REQ 

    Left Join 
     (SELECT * FROM REQ_COVER 
      LEFT JOIN TEST ON REQ_COVER.RC_ENTITY_ID = TEST.TS_TEST_ID 
     ) AS t0 
    ON t0.RC_REQ_ID = REQ.RQ_REQ_ID 

Left Join 

     (SELECT * FROM REQ_RELEASES 
      LEFT JOIN 
        (SELECT * FROM RELEASES 
        LEFT JOIN BUG ON RELEASES.REL_ID = BUG.BG_TARGET_REL OR RELEASES.REL_ID = BG_DETECTED_IN_REL 
        ) AS t1 

     ON REQ_RELEASES.RQRL_ID = t1.REL_ID) AS t2 


//REQ_RELEASES 
    ON REQ.RQ_REQ_ID = t2.RQRL_ID 

    WHERE REQ.RQ_FATHER_ID = 21 
+1

なぜインデントしませんか?誰もがインデントされていないこのコードを読んでいるのはなぜでしょうか? – Hogan

+0

@Hogan私が費やす時間が増えるにつれて、ほとんどの「バグ」はフォーマットの悪いコードのスペルミスです。列と各カンマの間のインラインコメントは、例外的にここで解析するのは難しいです。 –

+0

@JacobH - それは私の要点でしたが、私はSocraticメソッドを使用しようとしていました。 :) – Hogan

答えて

0

を使用していますその

私のSQLは

REQ.RQ_REQ_ID = t2.RQRL_ID 

のあるべき関係テーブルとHP ALMテーブルから来

ON REQ.RQ_REQ_ID = t2.RQRL_REQ_ID 

説明

RQRL_IDが手がかり#1の列の順序位置に基づいてREQ_RELEASESの主キーであるように見えますが、最初の列は一意制約の主キーです。ヒント#2 RQRL_IDはREQ_RELEASE IDと同じように聞こえるので、RQ_REQ_IDに参加するために使用する外部キーであるとは想像もつきません。ただし、RQRL_REQ_IDは、REQ.RQ_REQ_IDへの参加に使用する外部キーのように聞こえる。 REQのように/ rek /を発音するのは当然です。初心者のために命名規則が統一されていることを確認してください。

0

あなたは2つの問題

最初に持っているように見える:

AS t1 ON REQ_RELEASES.RQRL_ID = t1.REL_ID 

AS t2 on REQ_RELEASES.RQRL_REALEASE_ID = t1.REL_PARENT_ID 

そして第二に次のようになります。

REQ.RQ_REQ_ID = t2.RQRL_ID 

でなければなりませんが
ON REQ.RQ_REQ_ID = t2.RQRL_REQ_ID 
関連する問題