大家好!
我有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