首页 > 解决方案 > MySQL 加入查询。只显示不存在的条目

问题描述

我们有两个表 Accounts 和 Jobs。我们的业务要求每个客户每年都有一份工作。在下面的示例中,“ABC Ltd”有 3 个工作,“DEF Ltd”有 2 个工作,而“XYZ Ltd”没有工作。

Table Accounts
id | account
1  | ABC Ltd  
2  | DEF Ltd
3  | XYZ Ltd 

Table Jobs
acc_id | job_name | year
1      | Job KLM  | 2018
1      | Job 2Z   | 2019
1      | Job M5   | 2020   
2      | Job AB   | 2018
2      | Job C    | 2019

* tables are joined on id = acc_id

现在,在 2020 年,我们希望确保安排所有缺失的工作。我需要运行什么查询才能获得 2020 年“缺失”工作的列表?

例如,我正在寻找的结果是:

DEF Ltd 
XYZ Ltd 

标签: mysql

解决方案


试试这个代码

SELECT account FROM `Accounts` WHERE id not in (select acc_id from Jobs where year='2020')

推荐阅读