我是 SQL 的新手,并且在以下查询中遇到了困难。我正在尝试获取与我的角色 ID 相同的用户,但我不希望下面的查询返回我的姓名(因此我在 AND 条件中使用了 u.id<>0)。由于我是管理员用户,我有多个角色(R1、R2 和 R3)分配给我。我希望查询返回具有 ROLE R1 的所有其他用户。“列不明确定义..”错误是由于子查询而出现的。我的问题是——
- 这个错误的解决方法是什么?
- 如何拉取与我具有相同 role_id 的用户?谁能告诉我正确的查询?
提前致谢。
SELECT DISTINCT U.FIRST_NAME || ' ' || U.LAST_NAME AS USER_NAME,
U.PHONE AS PHONE,
U.EMAIL AS USER_EMAIL FROM USERS U
INNER JOIN USR_ORG_DOM_ROLE_RELATIONS UODR ON U.ID=UODR.USER_ID
INNER JOIN ROLES R ON R.ID=UODR.ROLE_ID
WHERE
U.DELETED='N'
AND U.DISABLED='N'
AND U.ID<>0
AND R.ID=(SELECT ID FROM ROLES R
INNER JOIN USR_ORG_DOM_ROLE_RELATIONS UODR ON R.ID=UODR.ROLE_ID
INNER JOIN USERS U ON U.ID=UODR.USER_ID
WHERE U.ID=0);