我有两张表,用户和角色,一个用户可以拥有多个角色
user: ID | FIRSTNAME | LASTNAME | etc..
1 | PETER | Blomp |
role: ID | ROLEID | USERID (which is user ID)
70 | 5 | 1 (peter)
71 | 2 | 1
我必须做但无法弄清楚的是,如何检索 roleid 不是的用户的数据
甚至到某个整数,对于。前任。用户PETER可以有roleID 5和2,我想要得到的是,如果Peter有roleid 3,他就会从结果集中排除,无论他是否有roleid 5。
SELECT
user.ID, user.FirstName, user.LastName
FROM
user
WHERE
user.ID NOT IN (
SELECT ID FROM role WHERE role.RoleID = '3'
)
这使用了所谓的subquery http://dev.mysql.com/doc/refman/5.6/en/subqueries.html在 MySQL 中。 WHERE 子句中的子查询将选择 RoleID 为 3 的所有 ID(例如 Peter)。然后它将排除这些 ID(Peter),使用NOT IN() http://dev.mysql.com/doc/refman/5.6/en/comparison-operators.html#function_not-in,来自用户的选择。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)