sql - SQL 查询:我想使用联结表显示用户名和角色描述
问题描述
嗨,有人可以帮忙吗?
我有三张桌子tblUsers
,tblRoles
并且tblUserRoles
如何UserName
从tblUsers
表格和表格role_discription
中显示tblRoles
。
CREATE TABLE tblRoles(
roleID int IDENTITY(1,1) PRIMARY KEY NOT NULL,
role_description varchar(50) NOT NULL
);
)CREATE TABLE tblUsers(
userID int IDENTITY(1,1) PRIMARY KEY,
FirstName varchar(50) NOT NULL,
LastName varchar(50) NOT NULL,
Age int NOT NULL,
UserName varchar(50) NOT NULL,
Password varchar(50) NOT NULL);
create table tblUserRoles (
userID int REFERENCES tblUsers(userID) NOT NULL,
roleID int REFERENCES tblRoles(roleID)NOT NULL,
);
alter table tblUserRoles
Add Constraint PK_UserRoles
Primary Key Clustered (userID,roleID)
我知道基本的 SELECT 语句,可以显示 tblUserRoles 表中的所有内容,但想显示名称和描述而不是 ID 号
解决方案
这是一个显示 user_name 和 role_description 的查询
SELECT t1.UserName , t2.role_description from tblUsers t1 INNER JOIN tblUserRoles t3 ON t1.userID = t3.userID INNER JOIN tblRoles t2 on t3.roleID = t2.roleID
这里第一个连接将在列 userID 上连接表 tblUsers 和 tblUserRoles,第二个连接将在列 roleID 上连接表 tblUserRoles 和 tblRoles。
推荐阅读
- mongodb - 从对象数组到数组
- rest - Springboot 服务间通信异常处理
- git - 对于贡献者,是否有必要分叉一个项目并提出拉取请求,或者创建一个新分支并提出拉取请求是否足够?
- scala - Gatling Scala:无法使用会话变量将身份验证令牌发送到方法
- python - 混合密度网络,MDN
- python - 为什么这会产生一个列表而不是一个元组?
- swift - 如何使用调用站点上下文报告/传播 Firestore 错误到 recordError
- android - Android CheckedTextView setChecked 无法正常工作
- jquery - 启动jquery插件
- c++ - 如何检查鼠标是否在控制台窗口中的某个区域上单击?