Mysql,类似主题

标签 mysql tags similarity

大家好!

我有 3 个表:

topics
(id*, title, body) 

tags
(id*,name)

topic_tags
(topic_id,tag_id)

每个主题都有一些标签。我想仅基于标签(而不是基于主题的标题和正文)找到与另一个主题“最相关”的主题。

如果 2 个主题有更多的共同标签,则它们更相关。我想按相似性(=​​ 常用标签的数量)以某种方式对结果进行排序。

你有什么建议?

最佳答案

SELECT  tr.*
FROM    topic t
JOIN    topic_tag tt
ON      tt.topic_id = t.id
JOIN    topic_tag ttr
ON      ttr.tag_id = tt.tag_id
JOIN    topic tr
ON      tr.id = ttr.topic_id
WHERE   t.id = $topicid
GROUP BY
        tr.id
ORDER BY
        COUNT(*) DESC

关于Mysql,类似主题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6791840/

相关文章:

mysql - 将两个 SQL 查询合二为一

php - 如何更新包含两个不同表的id映射的mysql映射表

c# - 有没有办法告诉 WebBrowser 组件 C# 不要更改原始 HTML?

r - 对不同维度的矩阵进行子集化

algorithm - 是否有适用于一系列花车的编辑距离版本?

mysql - 选择特定列以及其余列

java - Windows 中环境变量的歧义

json - encoding/json unmarshal 缺少一个字段

html - 我可以在 SVG 元素中使用 alt 和 title 属性吗?

python - 基于投票的用户之间的相似性