比较麻烦的就是一列中有多个演员名称处理。
可以先将一列多个组合转为多行,然后再按照演员名称进行分组,求max(score)。查询条件加上收藏是否为true(子查询来实现)
演员字段是多个名字组合成的字符串?还是可以建多对多的关联表?
我只给出伪SQL
select 姓名,max(评分)
from 演员
left join 影片 on 影片.演员 like 演员.姓名
group by 演员.姓名
核心就是 模糊JOIN。
select XX.*,YY.filmnamne from (select name,max(score) maxscore from yanyuan a left join yingpian b on b.yanyuan like concat('%',a.name,'%') group by name)XX left join yingpian YY on XX.maxscore=YY.score and YY.yanyuan like concat('%',name,'%');
写一个分隔函数对演员字段进行按逗号分割(一列多行)就出来了。