私は 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);