简单的MySql SELECT

时间:2013-11-01 17:12:08

标签: mysql

我有一张表,可以将工作日分配给worker-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' )

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

编辑:添加第二个表格。

1 个答案:

答案 0 :(得分:4)

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

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

否则,您需要在DISTINCT子句中使用HAVING来仅计算唯一值。

HAVING COUNT(DISTINCT days) = 2