3 таблицы определены следующим образом:
Пользователи
User_ID INT
First_Name VARCHAR
Last_Name VARCHAR
Email VARCHAR
Роли
Role_ID INT
Role_Name VARCHAR
Access_Level INT
Roles_Users
User_ID INT
Role_ID INT
Roles_Users
- это таблица связей «многие ко многим» между Users
и Roles
.Я хочу получить следующую информацию:
First_Name, Last_Name, Email, Role_Name
Пока у меня есть:
SELECT
U.First_Name,
U.Last_Name,
U.Email,
R.Name AS Role_Name
FROM Users U
INNER JOIN Roles_Users RU ON U.User_ID = RU.User_ID
INNER JOIN Roles R ON RU.Role_ID = R.Role_ID
Хитрость (по крайней мере, для меня) заключается в том, что я хочу только тянутьобратно Role_Name
с MIN(Access_Level)
для этого конкретного пользователя.Так что, в основном, в наборе записей, который я хочу получить, каждый пользователь будет указан только один раз с именем роли с самым низким уровнем доступа.
Я уверен, что это довольно просто, но сейчас я просто озадачен.
Спасибо