php - 如果相关表上存在id,如何查询表不包含数据?

标签 php mysql

这是我的表格。

通知表

+----+--------------+
| Id | Subject      |
+----+--------------+
| 1  | Loreum Ipsum |
| 2  | Hello World  |
| 3  | Pls Help     |
+----+--------------+

用户通知表

+----+----------------+--------+
| Id | NotificationId | Status |
+----+----------------+--------+
| 1  | 1              | Read   |
+----+----------------+--------+

如果 UserNotification 表上存在 NotificationId,我想查询不包括数据的通知表

我要结果:

通知表

+----+-------------+
| Id | Subject     |
+----+-------------+
| 2  | Hello World |
| 3  | Pls Help    |
+----+-------------+

最佳答案

使用NOT EXISTS

查询

SELECT * FROM Notification n
WHERE NOT EXISTS(
    SELECT 1 FROM UserNotification u
    WHERE n.Id = u.NotificationId
);

sql fiddle demo

关于php - 如果相关表上存在id,如何查询表不包含数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38394239/

相关文章:

php - Yii2 db mysql 连接抛出 ssh 端口 33060

javascript - 允许访客和站点成员使用 ajax、php/pdo、css、html 查看谁在线/登录

php - 如何从新增加的id PHP的sql中获取值

mysql - 在 ListView 中应用多个过滤器

php - 使用 php 从 openai GPT-3 API 流式传输数据

php - 使用类的实例访问静态方法是否被认为是不好的做法?

mysql - 从具有相同列的不同表中获取值到数组中

MySQL 导出到 MongoDB

PHP - 如果行大于 20,则限制 10 偏移量 1

mysql - 如何获得最少的免费约会