2016-11-22 290 views
1

我有一个表,看起来像这样MySql的排除查询

JOB_ID | Email  | Type  | Date  
_____________________________________ 
28319 | [email protected] | Service | 11-24-2016 
_____________________________________ 
28412 | [email protected] | Rotation | 11-24-2016 
_____________________________________ 
38123 | [email protected] | Service | 11-24-2016 
_____________________________________ 
28199 | [email protected]| Service | 11-24-2016 

什么是查询我会跑回到那些谁安排了服务,但没有在特定日期的旋转。

这是我的尝试:

SELECT j.Job_ID,j.Email,j.Type,j.Date 
from Jobs j 
join 
    Jobs j2 
    on j.Email = j2.Customer_Email 
where j2.JOB_ID NOT IN (select j.JOB_ID 
        from Jobs j 
        where j.Type = 'Rotation' 
       )  AND j.Date = '11-24-2016'; 

所以我的查询将返回安迪和罗杰。

+0

作为,使用适当的数据类型 – Strawberry

回答

1

这应该做的伎俩给你,没有必要加入这里:一边

SELECT * FROM Jobs WHERE Date = '11-24-2016' AND Type = 'Service' AND 
Email NOT IN (SELECT Email FROM Jobs WHERE Date = '11-24-2016' AND 
Type = 'Rotation'); 
+0

有什么不对的JOIN一定要存储日期? – Strawberry

+0

@Strawberry JOIN绝对没有错 – Reto