小编max*_*nko的帖子

如何根据标签获取类似的对象

我有三个这样的表:

  • 电影:身份证,姓名

  • tag:id,name,value

  • 已标记:id,movie(FK),tag(FK)

因此,每部电影都有自己的一组标签.我需要的是根据标签集检索类似的电影.我想说出按照匹配标签的数量排序的10部电影.

如果我创建如下的视图,它会让MySQL消失."tag"和"tagged"表中都有30k +条记录.

create view relatedtags as 

select
    entityLeft.id as id,
    entityRight.id as rightId,
    count(rightTagged.id) as matches

from
    entity as entityLeft join tagged as leftTagged on leftTagged.entity = entityLeft.id, 
    entity as entityRight join tagged as rightTagged on rightTagged.entity = entityRight.id

where leftTagged.tag = rightTagged.tag
and entityLeft.id != entityRight.id
group by entityLeft.id, entityRight.id
Run Code Online (Sandbox Code Playgroud)

mysql sql

3
推荐指数
1
解决办法
843
查看次数

标签 统计

mysql ×1

sql ×1