“讨论”表架构
title description desid replyto upvote downvote views
browser used a1 none 1 1 12
- bad topic b2 a1 2 3 14
sql database a3 none 4 5 34
- crome b4 a3 3 4 12
上表有两种内容类型 Main Topics 和 Comments。唯一的内容标识符 'desid' 用于标识它的主题或评论。'desid' 以 'a' 开头代表主题,评论 'desid' 以 'b' 开头。对于评论,“replyto”是与该评论相关联的主要主题的“目标”。
我喜欢找出根据(upvote+downvote+visits+对其的评论数)添加排列的主要主题列表。以下查询按(upvote+downvote+visits)的顺序给出了热门主题列表
select *
upvote+downvote+views
查询次数最多的
select *
from [DB_user1212].[dbo].[discussions]
where desid like 'a%'
order by (upvote+downvote+visited) desc
对于(评论+upvote+downvote+views)我试过
select *
from [DB_user1212].[dbo].[discussions]
where desid like 'a%'
order by (select count(*)
from [DB_user1212].[dbo].[discussions]
where replyto = desid )+upvote+downvote+visited) desc
但它没有用。因为不可能将 desid 从外部查询发送到内部子查询。请告诉我如何解决这个问题。请注意,我只需要查询语言的解决方案。