关于oracle三表联查的问题

有三个表第一个user_name(用户表)第二个user_zt(主题表)第三个user_ht(回帖吧)请问如何查询出“僵尸”用户:即没发帖也没回复过的用户如:作者发帖数量... 有三个表第一个 user_name(用户表)第二个user_zt(主题表)第三个user_ht(回帖吧)请问如何查询出“僵尸”用户:即没发帖也没回复过的用户如:作者 发帖数量 回复数量---------------------------------------------------------------孙权 0 0... ...第2:查询当前热门帖子,既当前帖子回复数量大于0的显示发帖人,标题,回帖数量如:作者 帖子 回复数量-----------------------------------------------------------孔明 草船借箭 3... ... 展开
 我来答
longrenyingdc8ecb1
2018-04-09 · TA获得超过1万个赞
知道大有可为答主
回答量:6032
采纳率:82%
帮助的人:2296万
展开全部
这是两个问题吧。
第一个按照你的理解就是userid没有出现在user_zt(主题表)第三个user_ht(回帖吧)中就可以认为是“僵尸”用户。
那么有几种写法,个人认为最简单的就是(在发帖中没有这个人,回帖中也没有这个人就可以了,当然其他写法也可以,比如联合查询后不等于等等。)
select username ,0,0 from user_name where user_name.userid not in (select userid from user_zt ) and user_name.userid not in (select userid from user_ht )
当前回帖数量大于0的发帖人,也就是说发帖后有回帖就算,不知道要不要找个人最热帖,也就是说,假设一个人有多个主题,那么是要把所有的主题都显示出来,还是只显示最热的。我就按照你的基本要求写一个都显示的
select user_name.username,user_zt.title,a.回帖数量 from (select ztid,count(1) 回帖数量 from user_ht group by ztid) a, user_zt,user_name where a.ztid=user_zt.id and user_name.userid=user_zt.userid
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式