简单思路,欢迎大家指点:使用concat拼接函数,将准确的用户喜好和用户拼接起来,在原表中进行匹配,返回匹配成功的分数并求平均即可。

select avg(score) as avg_score
from user_action_tb
where concat(user_id, hobby_l) in (
    select concat(rec_user, rec_info_l)
    from recommend_tb
)