我目前实现以下查询以获取数据库中与用户具有特定兴趣标签的所有帖子,并通过发布时间对这些帖子进行排序。我目前的查询非常完美。但是,我正在计划一个排序工具,供用户按分数(按喜欢或不喜欢计算)对帖子进行排序。
SELECT DISTINCT p.* FROM posts AS p
INNER JOIN post_tag AS posttag ON p.post_id = posttag.post_id
INNER JOIN profile_tag AS profiletag ON posttag.tag_id = profiletag.tag_id
INNER JOIN profile AS profile ON profile.profile_id = profiletag.profile_id
WHERE profile.username = 'username'
ORDER BY time_posted DESC
现在,喜欢保存在一个“喜欢”表中,其中包含以下列:
post_id | score
因此,当用户对帖子进行评分时,post_id
和score
会添加到此表中,因此并非每个帖子都会有分数。我被困在实现按分数对帖子进行排序的能力上的哪些步骤。
没有分数的帖子将是 0。
编辑:
一个例子:
post_id|score
1 1
1 1
2 1
所以post 1一共有2个like,post有1个,所以按照每个post的总和排序。