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

SQL Server两表关联查询时如何补全缺失的业务职能审核记录?

实现方案

你原来的写法只能匹配审核表已有记录对应的职能,无法给每个审核条目补全全部业务职能行。要实现需求,你需要先生成所有审核条目ID和全量业务职能的笛卡尔积,再左关联审核表,对缺失的审核状态补默认值0即可,具体SQL如下:

SELECT 
    i.itemId,
    f.funcId,
    ISNULL(r.reviewStatus, 0) AS reviewStatus,
    f.funcId,
    f.funcName
FROM (
    -- 获取所有存在的审核条目ID
    SELECT DISTINCT itemId FROM #review
) i
-- 条目与全量职能做笛卡尔积,得到每个条目需要的全部职能行
CROSS JOIN #func f
-- 左关联匹配对应审核记录
LEFT JOIN #review r 
    ON i.itemId = r.itemId 
    AND f.funcId = r.funcId
ORDER BY i.itemId, f.funcId

如果使用MySQL环境,将代码中的ISNULL函数替换为IFNULL即可,逻辑完全通用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 13:24:11