mysql - 简单的 MySql 选择

标签 mysql

我有一个表,用于将工作日分配给工作人员 ID。

Table: workdays       Table: jobs
+------+-------+      +------+-----------+
| id   | days  |      | id   | jobs      |
+------+-------+      +------+-----------+
|    1 |  mon  |      |    1 | cleaning  |
|    1 |  tue  |      |    2 | cooking   |
|    2 |  sat  |      |    3 | driving   |
|    3 |  mon  |      |    4 | cleaning  |
|    3 |  tue  |      |    5 | cooking   |
|    3 |  sat  |      +------+-----------+
|    4 |  wed  |
|    4 |  mon  |
|    5 |  tue  |
+------+-------+

这是我用来选择在我指定的任何一天(比如星期一和星期二)工作的人员 ID 的查询:

SELECT * FROM workdays WHERE days IN ( 'mon', 'tue' )

现在我想选择那些在我指定的所有日子里工作的人。我该怎么做?

编辑:添加了第二个表。

最佳答案

假设 days 对于每个 id 都是唯一的。

SELECT id
FROM workdays 
WHERE days IN ('mon', 'tue')
GROUP BY id
HAVING COUNT(*) = 2

否则,您需要在 HAVING 子句中包含 DISTINCT 以仅计算唯一值。

HAVING COUNT(DISTINCT days) = 2

关于mysql - 简单的 MySql 选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19731736/

相关文章:

php - 使用纯 MySQL 查询而不是 php 循环和语句来获得相同的结果

mysql - 数据库在 QuerySet.datetimes() 中返回无效值

mysql - 检索按键列值分组的最新日期 (MySql)

mysql - 通过多个表级联外键

php - Mysql/PHP 在一个查询中选择 Table1 或 Table2 中存在的行

php - 将目录中的所有文件解析到数据库中,不执行任何操作

mysql - 如何将其他表中的主 ID 插入到新表中

php - 无符号非空 mySql

mysql 用户没有权限。\s 显示我已正确登录。错误消息引用 '' @localhost 的用户

mysql - $wpdb->update 返回 0 时如何排除故障