mysql - 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
解决方案
试试这个代码
SELECT account FROM `Accounts` WHERE id not in (select acc_id from Jobs where year='2020')
推荐阅读
- javascript - 了解 Javascript 代码段
- android - React native:image-crop-picker crash app Android
- windows - 为什么 chrome/visual studio 代码/edge 都具有相同的类名“Chrome_WidgetWin_1”?
- excel - 有没有办法根据 Excel vba 中的逻辑分配数据?
- mysql - 具有 laravel 关系的错误 sql 查询
- angular - 类型默认值不可分配给类型 ButtonLook clear
- c++ - 编译器如何在 if 语句中使用多个比较运算符评估表达式?
- c# - 如何支持 Windows 11“对齐布局”到 WPF 中的自定义最大化/恢复按钮?
- javascript - Next.js 为 Link 组件中的嵌套动态路由添加当前路径
- php - Laravel 8:从 ChildClassTest 测试 MainClassTest