描述

假设云音乐数据库里面现在有几张如下简化的数据表:
关注follow表,第一列是关注人的id,第二列是被关注人的id,这2列的id组成主键

user_id follower_id
1 2
1 4
2 3

这张表的第一行代表着用户id为1的关注着id为2的用户
这张表的第二行代表着用户id为1的关注着id为4的用户
这张表的第三行代表着用户id为2的关注着id为3的用户

个人的喜欢的音乐music_likes表,第一列是用户id,第二列是喜欢的音乐id,这2列的id组成主键

user_id music_id
1 17
2 18
2 19
3 20
4 17

这张表的第一行代表着用户id为1的喜欢music_id为17的音乐
....
这张表的第五行代表着用户id为4的喜欢music_id为17的音乐

音乐music表,第一列是音乐id,第二列是音乐name,id是主键

id music_name
17 yueyawang
18 kong
19 MOM
20 Sold Out

请你编写一个SQL,查询向user_id = 1 的用户,推荐其关注的人喜欢的音乐。
不要推荐该用户已经喜欢的音乐,并且按music的id升序排列。你返回的结果中不应当包含重复项
上面的查询结果如下:

music_name
kong
MOM

题解:

1、查询user_id = 1 的用户,其关注的人(follower_id )

select follower_id from follow where user_id = 1

2、查询user_id = 1 的用户,其关注的人喜欢的音乐 (music_id)

select music_id from music_likes
where user_id in (select follower_id from follow where user_id = 1);

3、查询user_id = 1 的用户,其关注的人喜欢的音乐,同时排除该用户已经喜欢的音乐(music_id)

select music_id from music_likes
where user_id in (select follower_id from follow where user_id = 1)
and music_id not in (select music_id from music_likes where user_id = 1);

4、接着,连接表music,获得音乐name,并且按music的id升序排列,返回的结果不包含重复项。

注意:order by的字段必须要出现在select中

select music_name
from(select distinct music_name,m.idfrom (select music_id from music_likeswhere user_id in (select follower_id from follow where user_id = 1)and music_id not in (select music_id from music_likes where user_id = 1)) ajoin music m on a.music_id = m.idorder by id
)t

牛客网 SQL93.网易云音乐推荐相关推荐

  1. 【实践】网易云音乐推荐中用户行为序列深度建模.pdf(附下载链接)

    今天给大家带来网易云音乐资深算法工程师章莺所做的分享<网易云音乐推荐中用户行为序列深度建模.pdf>,本次分享共包含如下四大部分: 1.关于网易云音乐: 2.召回体系探索: 3.精排模型演 ...

  2. 网易云音乐推荐算法分析

    近年来,网易云音乐作为一匹黑马迅速在移动音乐app占据市场,2016年用户量就突破了2亿,而这与它优质的推荐系统必不可分. 当今,在这个信息爆炸的时代,我们可以接触到庞大浩瀚的网络资源,极大地便利了我 ...

  3. 网易云音乐 推荐算法

    本篇文章我们从网易云音乐的推荐功能出发,结合我的实习工作,聊一聊互联网的常用推荐策略. 首先来回顾一下云音乐的推荐功能. 网易云音乐推荐 音乐推荐是创始人丁磊先生愿景最直接的体现,也是网易云音乐的主推 ...

  4. 【技术分享】你想知道的网易云音乐推荐架构解析,都在这里!

    ​本文选自网易云音乐推荐算法负责人-肖强前辈在全球人工智能峰会上的分享,主要介绍了三方面:关于网易云音乐,AI算法在音乐推荐中的应用和AI场景下的音乐思考.这里拿来分享给大家,并加上自己的理解,希望对 ...

  5. 你想知道的网易云音乐推荐架构解析,都在这里!

    本文选自网易云音乐推荐算法负责人-肖强前辈在全球人工智能峰会上的分享,主要介绍了三方面:关于网易云音乐,AI算法在音乐推荐中的应用和AI场景下的音乐思考.这里拿来分享给大家,并加上自己的理解,希望对大 ...

  6. 让你上瘾的网易云音乐推荐算法,用Word2vec就可以实现

    上个周被网易云音乐的听歌报告刷屏,文摘菌这才发现,朋友圈不乏年度听歌成千上万的音乐重度患者.这群人可能中的不是音乐的毒,而是这套个性化音乐推荐算法真的太懂你. 这也又引起了一波对推荐算法的讨论.本文作 ...

  7. 如何快速掌握MYSQL?附牛客网精选的50道SQL题目详解【入门推荐】

    大家早上好,本人姓吴,如果觉得文章写得还行的话也可以叫我吴老师.欢迎大家跟我一起走进数据分析的世界,一起学习! 感兴趣的朋友可以关注我的数据分析专栏,里面有许多优质的文章跟大家分享哦. 另外也欢迎大家 ...

  8. 网易云音乐分析之推荐算法

    本篇文章我们从网易云音乐的推荐功能出发,结合我的实习工作,聊一聊互联网的常用推荐策略. 首先来回顾一下云音乐的推荐功能. 网易云音乐推荐 音乐推荐是创始人丁磊先生愿景最直接的体现,也是网易云音乐的主推 ...

  9. 网易云音乐每日歌曲推荐的原理是什么?

    (路人甲:此篇文章是我同步发在知乎的一篇回答,文章中有链接打不开可以点击阅读原文) 用过网易云音乐的都知道网易云的每日推荐功能,有时候每日推荐真真确确的能推荐给我们很惊喜的歌,那么这么神奇的每日推荐的 ...

最新文章

  1. android launchmode singleinstance问题
  2. java classloader_Java Classloader原理分析
  3. python生成requirements.txt的两种方法
  4. 头指针与头结点的异同
  5. 大工17春计算机文化基础,大工17春《计算机文化基础》在线测试
  6. winform模拟鼠标点击
  7. angular使用动态组件后属性值_Angular 2-组件
  8. springcloud-config-client的那些坑
  9. 自抗扰控制(ADRC)—— 一阶系统
  10. Excel 纵向查找函数 vlookup() 使用入门
  11. 执行taosdemo发生错误Unable to establish connection
  12. 红皮书再总结——实例四
  13. 2022-2028年全球及中国红外(IR)传感器行业投资前景分析
  14. ERP系统如何通过存储过程导出报表数据
  15. Java 压缩PDF文档
  16. VL102+IT6563替代方案|TYPEC转HDMI带PD方案|AG9311MAQ设计方案
  17. 【论文阅读】Conversations Are Not Flat: Modeling the Dynamic Information Flow across Dialogue Utterances
  18. 【参赛作品14】Windows安装华为openGauss数据库——openGauss基于x86架构openEuler虚拟机的编译以及JDBC的连接
  19. 计算机网络应用押韵句,沙雕押韵很可爱的rap的句子 笑掉大牙的押韵句子
  20. java窗体显示字体_文字字体设计窗体 实验!求大神

热门文章

  1. Linux下awk命令简介
  2. 2.4 电子邮件(Email)
  3. 用计算机弹出魔法城堡,四川版五年级小学下册信息技术教案.doc
  4. KDE下中文输入法管理
  5. Opencv4.5 KCF算法 示例
  6. 用Keras搞一个阅读理解机器人
  7. FlinkSql多表(三表) join/interval join
  8. 语法学类毕业论文文献(推荐10篇)
  9. _get_sysconfigdata_name() missing 1 required positional argument: ‘check_exists‘
  10. 双十一要来了,我去庙里给你求了一道护身符