2013-11-01 36 views
0

我有一個表爲工作日分配工作日ID。簡單的MySql SELECT

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') 

現在,我想選擇那些在我指定的所有日子裏工作的人。我怎樣才能做到這一點?

編輯:增加第二個表。

+0

假設(ID,日)是唯一的... GROUP BY ID HAVING COUNT(*)在(項目=數) – Strawberry

+4

@ Zap7都能跟得上。它會返回**空**。 –

+2

誰提高了? – Strawberry

回答

4

假設days對於每個id都是唯一的。

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

否則,你需要有DISTINCTHAVING條款來算唯一的值。

HAVING COUNT(DISTINCT days) = 2 
+0

非常好,謝謝!還有一件事:比方說,我有另一張桌子給每個工作人員分配工作。我如何選擇星期一和星期二提供的所有工作人員,並進行清潔?我嘗試了「SELECT * FROM工作日NATURAL LEFT JOIN作業WHERE IN IN('MON''tue')AND IN IN('cleaning')」,但它不返回任何結果。 – eevaa

+0

你能展示模式和他們的關係嗎? –

+0

我把它添加到我的文章中。 – eevaa