sql - 如何修复此查询以返回来自原始连接的所有行以及使用另一个属性中的 id 的所有行
问题描述
我正在编写一个查询以返回测试用例涵盖的所有要求。
由于需求的链接方式,需求表还包括对父需求的引用。
我的问题是我不确定如何加入我的表以返回测试用例直接涵盖的所有需求,以及它们的所有父需求。
我试图在父属性上设置一个自连接到需求 id 属性,但由于某种原因我无法让它工作,并且它返回一个错误(“RQ1”。“REQ_FATHER_ID”:无效标识符)当我尝试引用表的父 ID 时。
这是我到目前为止所做的工作,这将返回测试直接涵盖的所有要求:
SELECT
R.RQ_USER_34
/* Requirement ID */,
T.TS_NAME
/* Test Name */,
T.TS_TEST_ID
/* Test ID */,
TC.TC_STATUS
/* Test Result */,
TC.TC_TESTCYCL_ID
/* Test Cycle ID */
FROM
TEST T
LEFT JOIN TESTCYCL TC ON T.TS_TEST_ID = TC.TC_TESTCYCL_ID
LEFT JOIN REQ_COVER RC ON T.TS_TEST_ID = RC.RC_ENTITY_ID
LEFT JOIN REQ R ON R.RQ_REQ_ID = RC.RC_REQ_ID
ORDER BY
T.TS_TEST_ID
ASC
这是我尝试从引用上述查询的父 ID 的需求表中添加行的自联接,但它不起作用(请注意,RQ_FATHER_ID = -1 表示需求没有父级):
SELECT
R1.RQ_USER_34 AS ChildReq,
R2.RQ_USER_34 AS ParentReq,
T.TS_NAME,
T.TS_TEST_ID,
TC.TC_STATUS,
TC.TC_TESTCYCL_ID
FROM
TEST T
LEFT JOIN TESTCYCL TC ON T.TS_TEST_ID = TC.TC_TESTCYCL_ID
LEFT JOIN REQ_COVER RC ON T.TS_TEST_ID = RC.RC_ENTITY_ID
LEFT JOIN REQ R1 ON R1.RQ_REQ_ID = RC.RC_REQ_ID
LEFT JOIN REQ R2 ON R2.RQ_REQ_ID = R1.RQ_FATHER_ID
WHERE
R1.RQ_REQ_FATHER <> -1
ORDER BY
T.TS_TEST_ID
ASC
解决方案
推荐阅读
- c# - StreamSocketListener 只工作一次;第二次通话失败
- java - Android 属性动画没有停止
- java - 在 focframework 中,我如何制作一个按钮,将多个 Jasper 报告打印在一个打印件中连接在一起
- gcc - gcc 可以命名 mangle 吗?
- postgresql - 如何修改使用 sequelizeJS 生成的默认日期时间格式
- node.js - 获取错误响应,状态为:404 Not Found for URL
- spring - Oauth2、本机应用程序和令牌窃取
- elasticsearch - Elasticsearch 中的 MUST 和 MUST_NOT 查询
- java - 从字符串变量中的休息服务获取异常
- javascript - Javascript Date 对象未显示正确的月份