3个表定义如下:帮我看看这个SQL查询
用户
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)
。所以基本上我想要拉的记录集将使每个用户只列出一次访问级别最低的角色名称。
我确定这很简单,但它现在只是将我绊倒。
由于
这就是为什么我讨厌*多对多*表。 –