mysql查询某个人的公告未读数

概述

项目中有两个表一个公告已读表,另一个公告表,要求查询某个人的公告未读数

解决

公告表
在这里插入图片描述
公告已读表
在这里插入图片描述

没有一个字段是标识未读的,怎么办呐?

能想到的是左连接和右连接,获得两张表的数据,在获得了两张表的数据之后,可能可以根据某些null值将数据查询出来

尝试了如下代码:

select t.*,r.*
from t_notice t 
left join t_notice_read r on r.noticeId = t.id and r.userId = 1 
where t.delete_status = '0'

在这里插入图片描述
可以看到,如果文章已经读过,那么noticeId和userId值会存在,那么未读过noticeId和userId将不存在,所以,也就有思路了,userId或noticeId为null,则该文章为用户未读文章,这样用户的未读文章也就统计出来了

完整代码如下:

select count(1) 
from t_notice t 
left join t_notice_read r on r.noticeId = t.id and r.userId = 1 
where t.delete_status = '0' and r.userId is null

ok,完事

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值