MySQL:选择所有只有两行的行,有具体值吗?

标签 mysql

我想获取所有仅具有两个角色的用户,即 1 和 4。

一个用户角色的存储方式如下:

user_id role_id
54321   1
54321   4
54322   1
54323   1

我如何进行查询来获取 user_id 54321,因为它只有两个角色,这两个角色是 1 和 4?

我可以使用 WHERE role_id IN (1, 4),但这也会获取具有其他角色的用户。

最佳答案

WHERE role_id IN (1, 4) GROUP BY user_ID HAVING COUNT(DISTINCT role_id) = 2

http://gregorulm.com/relational-division-in-sql-the-easy-way/

关于MySQL:选择所有只有两行的行,有具体值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18707775/

相关文章:

java - 使用 JDBC 和 MySQL 优化大量插入

mysql - 使用 Mysql/Ajax 使用输入字段中的值填充表单

mysql - mariadb SQL 查询显示带有聚合值的汇总行

php - 使用mysql select的PHP block 系统出现问题

仅使用 PHP 进行 PHP/MySQL 性能测试

mysql - 每个用户在使用单个应用程序时是否应该获得自己的数据库用户/密码?

mysql - 从多个供应商处为库存项目选择最新、最低的价格

mysql - SQL OR 子句优先级

mysql - 获取行数 + 最后插入的行

mysql - 排除特定条件的全文搜索