Hive 刷题——向用户推荐朋友收藏的商品

需求描述

现需要请向所有用户推荐其朋友收藏但是用户自己未收藏的商品,请从好友关系表(friendship_info)和收藏表(favor_info)中查询出应向哪位用户推荐哪些商品。
期望结果如下:
user_id
 
(用户id)
sku_id
 
(应向该用户推荐的商品id)
101
2
101
4
101
7
101
9
101
8
101
11
101
1
需要用到的表:
好友关系表:friendship_info
user1_id(用户1 id)
user2_id(用户2 id)
101
1010
101
108
101
106
收藏表:favor_info
user_id(用户id)
sku_id(商品id)
create_date(收藏日期)
101
3
2021-09-23
101
12
2021-09-23
101
6
2021-09-25

参考SQL

复制代码
select t.user1_id user_id, t.sku_id
from (select user1_id, sku_id
      from friendship_info f
               join favor_info f1 on f.user2_id = f1.user_id
      group by user1_id, sku_id) t
         left join
     (select user1_id, sku_id
      from friendship_info f
               join favor_info f1 on f.user1_id = f1.user_id
      group by user1_id, sku_id) t1
     on t.user1_id = t1.user1_id and t.sku_id = t1.sku_id
where t1.user1_id is null
  and t1.sku_id is null
order by 1;
复制代码
posted @   晓枫的春天  阅读(88)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
历史上的今天:
2022-01-17 service mysqld restart mysqld: 未被识别的服务
点击右上角即可分享
微信分享提示