mysql - 如何选择数据透视表中没有与 X id 相关的条目的位置
问题描述
在我的数据库中,我有一个通知类型表,如下所示:
+----+---------+
| id | type |
+----+---------+
| 1 | live |
| 2 | warning |
+----+---------+
事件表:
+----+---------------+--------------------+
| id | name | description |
+----+---------------+--------------------+
| 1 | My event | Hello |
| 2 | Other Event | I'm an event! |
+----+---------------+--------------------+
还有一个数据透视表 event_called_notifications 来跟踪每个事件已经调用了哪种类型的通知:
+----+----------+----------------------+
| id | event_id | notification_type_id |
+----+----------+----------------------+
| 22 | 1 | 1 |
| 23 | 2 | 1 |
+----+----------+----------------------+
我想选择所有没有称为特定类型通知的事件,没有与 X 相关的枢轴的 IE 条目
解决方案
一种选择是使用NOT EXISTS
一个相关的子查询来检查链接表中的行是否有事件和通知。
SELECT *
FROM events e
WHERE NOT EXISTS (SELECT *
FROM event_called_notifications ecn
WHERE ecn.event_id = e.id
AND ecn.notification_type_id = <your X goes here>);
推荐阅读
- typescript - TypeScript:返回扩展 Record 的泛型类型的函数
- python - Tensorflow 基础,tf.less 计算错误
- javascript - Angular 指令返回失败的单元测试
- python - 在 Python 中使用 Expression 来查看哪个不属于
- sql - 在 SQL Server 2008 R2 中,是否可以在不使用 IDENTITY(1,1) 的情况下创建自定义自动增量标识字段?
- python - 我可以在 Python 中创建一个数据文件并将其导入到其他 python 文件吗
- python - 相关 Series.corr(series2) 给了 NAN 为什么?
- python-3.x - 如何在单链接中更改我的打印功能?
- laravel - Laravel Dusk 错误 - 无法运行默认测试
- python - 我如何设置喜欢计数的长度