ユーザー、ロール、権限の3つのテーブルがあります
ユーザー
|username|lastName|firstName|....
|dan |foo |dan
|russ |bar |russ
役割
|role |roleLevel
|ROLE_ADMIN | 0
|ROLE_COMPANY_ADMIN | 20
|ROLE_MARKETING_ADMIN | 50
|ROLE_SERVICE_ADMIN | 80
|ROLE_USER | 100
当局
|username|authority
|dan |ROLE_SERVICE_ADMIN |
|dan |ROLE_USER |
|russ |ROLE_MARKETING_ADMIN|
|russ |ROLE_ADMIN |
|russ |ROLE_COMPANY_ADMIN |
渡すINTよりも高いroleLevelと最も低いroleLevelを持つすべてのDISTINCTユーザーを取得する必要があります
私が今持っているのは:
SELECT DISTINCT u.username, u.firstName, u.lastName, r.roleLevel FROM AUTHORITIES a, ROLES r, USERS u
WHERE r.role = a.authority
AND a.username = u.username
AND r.roleLevel >= #{roleLevel}
ORDER BY u.lastName, u.firstName
しかし、それは私に複数の役割を持つユーザーのための複数の行を与えます。渡したものよりも低いroleLevelを持つユーザーを取得するにはどうすればよいですか?