0

私は SQL の初心者で、以下のクエリに苦労しています。私と同じロール ID を持つユーザーを取得しようとしていますが、以下のクエリで自分の名前を返したくありません (したがって、AND 条件で u.id<>0 を使用しました)。私は管理者ユーザーなので、複数のロール (R1、R2、および R3) が割り当てられています。ROLE R1 を持つ他のすべてのユーザーをクエリで返すようにします。サブクエリが原因で「列が曖昧に定義されています..」というエラーが発生しています。私の質問は -

  1. このエラーの解決策は何ですか?
  2. 自分と同じ 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);
4

1 に答える 1