【发布时间】:2021-07-16 18:15:32
【问题描述】:
我有一个很大的员工表,我必须根据某些配置文件的组合来查看他们的访问权限。
以我的员工表的这个非常简化的版本为例:
| NAME | PROFILE |
|---|---|
| TIM | MANAGER |
| TIM | SUPERVISOR |
| TIM | WORKER |
| TOM | SUPERVISOR |
| TOM | WORKER |
| PAUL | WORKER |
配置文件是“分层的”;考虑蒂姆:他有个人资料“经理”和 “SUPERVISOR”和“WORKER”,因此 Tim 是“经理”(经理需要配置文件“MANAGER+“SUPERVISOR”+“WORKER”才能正确访问)。
对于 TOM:他有“SUPERVISOR”和“WORKER”,所以 Tom 是“主管”
我可以为所有经理选择 PROFILE = "MANAGER"。
但是我如何选择 PAUL,这意味着我只想要 PROFILES = "WORKER" 的名称,不包括 "SUPERVISOR" 和 "MANAGER"
我在 Access 工作,我对 SQL 的理解有限。
我尝试了多种说法,例如:
SELECT NAME
FROM TEST
WHERE PROFILE = "WORKER" AND NOT "MANAGER" OR "EXPERT"
有没有办法在不转换表的情况下使用 SQL 语句选择 Paul 作为 WORKER(同样选择 Tom 作为 SUPERVISOR)?
谢谢你,埃里克
【问题讨论】:
-
用您正在使用的数据库标记您的问题。
-
您需要另一个表来定义层次结构。不要根据查询中的字段值对表达式进行编码。
标签: sql ms-access select where-clause