MySql排除查询

标签 mysql

我有一个看起来像这样的表

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

我将运行什么查询来返回那些安排了服务但没有在特定日期轮换的人。

这是我的尝试:

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

所以我的查询将返回 andy 和 roger。

最佳答案

这应该可以解决问题,这里不需要连接:

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

关于MySql排除查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40750763/

相关文章:

mysql - 无法使用 select * 获取所有列

php - MySql 更新后找不到 mysql.infoschema

mysql - 过滤掉具有相同列的行

python - 如何比较sqlalchemy中的日期?

mysql - 查询以检索一个表中的主记录及其从另一个表中的所有子记录

MySQL Workbench 无法在 Windows 上打开

mysql - 未创建数据库表

php - 在 linux 上从源代码安装了 mysql,然后如何让它与 php 一起工作?

mysql - Ecto 不允许使用片段参数进行 mysql 全文搜索

javascript - 我想使用 ajax 编辑进入 while 循环的品牌名称,数据在输入类型 =“文本”中