我尝试做嵌套连接。
我测试了它们中的每一个并且它可以工作,但是当我把它们放在一起时它不会显示最深的连接数据。
来自t1(LEFT JOIN BUG ON RELEASES.REL_ID = BUG.BG_TARGET_REL OR RELEASES.REL_ID = BG_DETECTED_IN_REL) AS t1)
的那个。
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
答案 0 :(得分:0)
应该
REQ.RQ_REQ_ID = t2.RQRL_ID
是
ON REQ.RQ_REQ_ID = t2.RQRL_REQ_ID
<强>解释强>
似乎RQRL_ID是REQ_RELEASES的主键,基于线索#1列的序号位置表明第一列是唯一约束,即主键。线索#2 RQRL_ID听起来与REQ_RELEASE ID类似,因此很难想象它是应该用于加入RQ_REQ_ID的外键。但是,RQRL_REQ_ID听起来像应该用于加入REQ.RQ_REQ_ID的外键。当然,如果你发音REQ喜欢/ rek /。看看统一命名约定可以为新手做什么?
答案 1 :(得分: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