Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如果没有管理员角色,则不显示数据_Mysql_Sql - Fatal编程技术网

Mysql 如果没有管理员角色,则不显示数据

Mysql 如果没有管理员角色,则不显示数据,mysql,sql,Mysql,Sql,我有3张多对多关系表。任何用户都可以有多个角色,我不想显示角色为'Admin'的用户,问题是如果它有多个角色,它将被显示 [User] [Role] [UserRole] UserId RoleId UserId FirstName RoleName RoleId LastName 对不对我有这个查询从UserRole上的User JOIN UserRole中选择FirstName、LastName、RoleName。UserId=User.Use

我有3张多对多关系表。任何用户都可以有多个角色,我不想显示角色为'Admin'的用户,问题是如果它有多个角色,它将被显示

[User]      [Role]    [UserRole]
UserId      RoleId      UserId
FirstName   RoleName    RoleId
LastName
对不对我有这个查询
从UserRole上的User JOIN UserRole中选择FirstName、LastName、RoleName。UserId=User.UserId在Role.RoleId=UserRole.RoleId中加入角色RoleName!='管理员“

例如:
用户A具有角色AdminManager,我的查询将显示Manager,但我不想显示任何具有角色Admin的用户。您可以通过子选择来执行此操作:

SELECT FirstName, LastName, RoleName 
FROM User 
INNER JOIN UserRole 
ON UserRole.UserId = User.UserId 
INNER JOIN Role 
ON Role.RoleId = UserRole.RoleId 
WHERE User.UserId NOT IN 
    (SELECT UserId
     FROM UserRole AS ur
     WHERE ur.RoleId = (SELECT RoleId FROM Role AS rn WHERE rn.RoleName = 'Admin')
    )

您可以使用子选择来执行此操作:

SELECT FirstName, LastName, RoleName 
FROM User 
INNER JOIN UserRole 
ON UserRole.UserId = User.UserId 
INNER JOIN Role 
ON Role.RoleId = UserRole.RoleId 
WHERE User.UserId NOT IN 
    (SELECT UserId
     FROM UserRole AS ur
     WHERE ur.RoleId = (SELECT RoleId FROM Role AS rn WHERE rn.RoleName = 'Admin')
    )

您可以使用子选择来执行此操作:

SELECT FirstName, LastName, RoleName 
FROM User 
INNER JOIN UserRole 
ON UserRole.UserId = User.UserId 
INNER JOIN Role 
ON Role.RoleId = UserRole.RoleId 
WHERE User.UserId NOT IN 
    (SELECT UserId
     FROM UserRole AS ur
     WHERE ur.RoleId = (SELECT RoleId FROM Role AS rn WHERE rn.RoleName = 'Admin')
    )

您可以使用子选择来执行此操作:

SELECT FirstName, LastName, RoleName 
FROM User 
INNER JOIN UserRole 
ON UserRole.UserId = User.UserId 
INNER JOIN Role 
ON Role.RoleId = UserRole.RoleId 
WHERE User.UserId NOT IN 
    (SELECT UserId
     FROM UserRole AS ur
     WHERE ur.RoleId = (SELECT RoleId FROM Role AS rn WHERE rn.RoleName = 'Admin')
    )

提供了一个答案,但是,如果你还在挣扎,考虑一下这个简单的两步过程:1。如果您还没有这样做,请提供适当的DDL(和/或SQLFIDLE),以便我们可以更轻松地复制问题。2.如果你还没有这样做,提供一个与步骤1中提供的信息相对应的期望结果集。已经提供了一个答案,但是,如果你还在挣扎,考虑下面这个简单的两步行动:1。如果您还没有这样做,请提供适当的DDL(和/或SQLFIDLE),以便我们可以更轻松地复制问题。2.如果你还没有这样做,提供一个与步骤1中提供的信息相对应的期望结果集。已经提供了一个答案,但是,如果你还在挣扎,考虑下面这个简单的两步行动:1。如果您还没有这样做,请提供适当的DDL(和/或SQLFIDLE),以便我们可以更轻松地复制问题。2.如果你还没有这样做,提供一个与步骤1中提供的信息相对应的期望结果集。已经提供了一个答案,但是,如果你还在挣扎,考虑下面这个简单的两步行动:1。如果您还没有这样做,请提供适当的DDL(和/或SQLFIDLE),以便我们可以更轻松地复制问题。2.如果您还没有这样做,请提供与步骤1中提供的信息相对应的所需结果集。哇,我尝试了not exist,但选择了firstname和lastname,忘记了ID。非常感谢。请在RoleWOW中的子选择中编辑RoleName我尝试了不存在,但选择了名字和姓氏,忘记了ID。非常感谢。请在RoleWOW中的子选择中编辑RoleName我尝试了不存在,但选择了名字和姓氏,忘记了ID。非常感谢。请在RoleWOW中的子选择中编辑RoleName我尝试了不存在,但选择了名字和姓氏,忘记了ID。非常感谢。请在子角色中编辑从角色中选择角色名称