如何用SQL验证角色与角色家族组合是否存在于数据库中
验证角色与角色家族组合的存在性
表结构说明
roles表:包含主键role_oid、角色名称role_name、外键role_family_oid(关联role_family表主键)role_family表:包含主键role_family_oid、角色家族名称role_family_name
验证查询方案
把需要验证的角色-角色家族组合作为临时数据集,通过左关联两张表判断组合是否存在:
WITH target_combinations AS ( SELECT '角色1' AS role_name, '角色家族1' AS role_family_name UNION ALL SELECT '角色2' AS role_name, '角色家族2' AS role_family_name ) SELECT tc.role_name AS `角色`, tc.role_family_name AS `角色家族`, CASE WHEN r.role_oid IS NOT NULL THEN '存在' ELSE '不存在' END AS `状态` FROM target_combinations tc LEFT JOIN role_family rf ON tc.role_family_name = rf.role_family_name LEFT JOIN roles r ON tc.role_name = r.role_name AND r.role_family_oid = rf.role_family_oid;
查询结果示例
| 角色 | 角色家族 | 状态 |
|---|---|---|
| 角色1 | 角色家族1 | 存在 |
| 角色2 | 角色家族2 | 不存在 |
内容的提问来源于stack exchange,提问作者codingEnthu
相关产品推荐
相关产品推荐

