【发布时间】:2011-09-19 16:36:59
【问题描述】:
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)。因此,基本上我想要提取的记录集将每个用户仅列出一次,其访问级别最低的角色名称。
我确信这很简单,但现在只是难倒我。
谢谢
【问题讨论】:
-
这就是我讨厌多对多表的原因。
标签: sql sql-server-2008