You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写SQL查询包及子包需求并生成资质条款需求汇总表?

查询指定包及其子包的所有需求SQL方案

1. 假设数据库表结构

先明确常见的需求管理数据库表结构(需根据实际库表调整字段/表名):

  • packages 表:存储包信息,字段包括 id(包ID)、name(包名称)、parent_id(父包ID,顶级包为NULL)
  • requirements 表:存储需求信息,字段包括 alias(需求别名)、name(需求名称)、verification_method(验证方法)、package_id(所属包ID)

2. 递归查询指定包的所有子包ID

用递归CTE(Common Table Expression)获取目标包及其所有层级子包的ID:

WITH RECURSIVE package_hierarchy AS (
    -- 起始:指定目标包的ID,替换成你要查询的包ID
    SELECT id FROM packages WHERE id = '目标包ID'
    UNION ALL
    -- 递归:查询所有子包
    SELECT p.id 
    FROM packages p
    JOIN package_hierarchy ph ON p.parent_id = ph.id
)

3. 关联需求表获取目标字段

把上面的包层级CTE和需求表关联,查询需要的字段:

WITH RECURSIVE package_hierarchy AS (
    SELECT id FROM packages WHERE id = '目标包ID'
    UNION ALL
    SELECT p.id 
    FROM packages p
    JOIN package_hierarchy ph ON p.parent_id = ph.id
)
SELECT 
    r.alias AS "别名",
    r.name AS "名称",
    r.verification_method AS "验证方法"
FROM requirements r
JOIN package_hierarchy ph ON r.package_id = ph.id
ORDER BY r.package_id, r.name;

4. 调整说明

  • 替换 '目标包ID' 为实际要查询的包ID,若按包名称查询,把第一行改成 SELECT id FROM packages WHERE name = '目标包名称'
  • 若表名/字段名不同(比如verification_method叫verify_way),直接替换对应名称即可
  • 如需过滤特定状态的需求,比如只查已生效的,在最后加 WHERE r.status = '生效' 这类条件

5. 生成资质条款表格示例

把查询结果导出或复制后,整理成Markdown表格:

别名名称验证方法
REQ001用户身份验证人工审核日志
REQ002数据加密传输自动化工具扫描

内容的提问来源于stack exchange,提问作者Mikkie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 18:14:54