我希望有比我更先进的MySQL知识的人来帮助指导我如何做以下工作。
假设我有表#1,视频:
Video ID
Video Name etc
我也有表#2,标签
Tag ID
Tag Name
我有第三个表,将每个视频链接到一个或多个标签:
ID (primary and autoincremented)
Tag ID
Video ID
现在我能够找到类似的视频(基于排名有多少视频共享最大数量的标签作为一个)使用上面的PHP结合,但这涉及到一些查询,我觉得它可以通过mysql查询更优雅。我想浏览一下这些视频,根据它们彼此共有的标签数量找到最相似的。
任何帮助都是感激的!
假设视频为"Gravity", Gravity的VIDEO_ID为4321。
SELECT COUNT(res.TAG_ID), res.VIDEO_ID
FROM tag_link_table res
INNER JOIN tag_link_table target
ON target.VIDEO_ID = 4321 AND res.TAG_ID = target.TAG_ID
GROUP BY res.VIDEO_ID
ORDER BY COUNT(res.TAG_ID) DESC