MySql排除查询
MySql exclusion query
我有一个 table 看起来像这样
JOB_ID | Email | Type | Date
_____________________________________
28319 | mike@aol.com | Service | 11-24-2016
_____________________________________
28412 | mike@aol.com | Rotation | 11-24-2016
_____________________________________
38123 | andy@aol.com | Service | 11-24-2016
_____________________________________
28199 | roger@aol.com| Service | 11-24-2016
我会问 运行 return 那些安排了服务但没有在特定日期轮换的人。
这是我的尝试:
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';
所以我的查询是 return 安迪和罗杰。
这应该可以为您解决问题,这里不需要连接:
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');
我有一个 table 看起来像这样
JOB_ID | Email | Type | Date
_____________________________________
28319 | mike@aol.com | Service | 11-24-2016
_____________________________________
28412 | mike@aol.com | Rotation | 11-24-2016
_____________________________________
38123 | andy@aol.com | Service | 11-24-2016
_____________________________________
28199 | roger@aol.com| Service | 11-24-2016
我会问 运行 return 那些安排了服务但没有在特定日期轮换的人。
这是我的尝试:
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';
所以我的查询是 return 安迪和罗杰。
这应该可以为您解决问题,这里不需要连接:
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');