我希望有比我更高级的MySQL知识的人帮助指导我如何做以下事。
假设我有表#1,视频:
Video ID
Video Name etc
我也有表#2,标签
Tag ID
Tag Name
我有第三张表将每个视频链接到一个或多个标签:
ID (primary and autoincremented)
Tag ID
Video ID
现在我可以找到类似的视频(基于排名有多少视频共享最多的标签数量),使用上面结合PHP,但这涉及一些查询,我觉得可以做到通过单独的mysql查询更优雅。我想查看视频,根据彼此共有的标签数量找到最相似的视频。
感谢任何帮助!
答案 0 :(得分:3)
让我们说视频是" 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