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

SQL多表查询:为每个角色返回全量步骤描述及对应权限值

实现思路

要实现每个role匹配c表全量step的需求,核心是先生成a表所有role和c表所有step的全量组合,再关联b表匹配权限,无匹配时补默认值none。普通的多表左连接只会返回存在关联关系的记录,无法拿到全量step,所以需要先做交叉连接再左连关联表。

最终SQL语句
SELECT 
    a.worker_role_desription,
    a.role,
    c.stepid,
    c.step_description,
    COALESCE(b.permission, 'none') AS permission
FROM a
-- 生成role和全量step的笛卡尔积,保证每个role都对应c表所有step
CROSS JOIN c
-- 左连权限表匹配对应关系
LEFT JOIN b 
    ON a.role = b.role 
    AND c.stepid = b.stepid
-- 可选排序,按role和stepid规整结果顺序
ORDER BY a.role, c.stepid;
说明
  • 该写法兼容MySQL、PostgreSQL、Oracle等主流关系型数据库
  • 如果不需要保留a表中没有任何关联的role,可以根据需要额外加过滤条件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 16:30:03