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

如何合并两个SQL查询,在单表展示含继承关系的请求数据

合并后的SQL查询方案

合并后的查询语句

SELECT 
    r.request_number AS 请求编号,
    assignee_u.first_name AS 经办人,
    submitter_u.first_name AS 提交人
FROM requests r
-- 关联提交人信息
JOIN submitter s ON r.submitter_id = s.id
JOIN users submitter_u ON s.id = submitter_u.id
-- 关联经办人信息(多对多通过中间表)
JOIN request_assignee ra ON r.id = ra.request_id
JOIN assignee a ON ra.assignee_id = a.id
JOIN users assignee_u ON a.id = assignee_u.id;

逻辑说明

  • 以requests表作为主表,先通过submitter_id关联submitter表,再关联users表获取提交人姓名,这部分保留了原第二个查询的核心逻辑,同时移除了原查询中冗余的request_assignee关联(提交人与请求的关联不需要通过该中间表)。
  • 接着通过request_assignee中间表关联assignee表,再关联users表获取经办人姓名,对应原第一个查询的逻辑。
  • 由于请求与经办人是多对多关系,每个经办人会和对应的请求、提交人生成一条独立记录,满足“一个请求可对应多个经办人”的展示需求。

原查询的冗余修正

原第二个查询中额外关联了request_assignee表,这会导致无意义的数据重复,合并时已删除该冗余关联。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 16:50:25