首页 > 解决方案 > SQL 查询:我想使用联结表显示用户名和角色描述

问题描述

嗨,有人可以帮忙吗?

我有三张桌子tblUserstblRoles并且tblUserRoles

如何UserNametblUsers表格和表格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 号

标签: sqlsql-server

解决方案


这是一个显示 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。


推荐阅读