leetcode 1264页面推荐(postgresql)

需求

朋友关系列表: Friendship

±--------------±--------+

| Column Name | Type |

±--------------±--------+

| user1_id | int |

| user2_id | int |

±--------------±--------+

这张表的主键是 (user1_id, user2_id)。

这张表的每一行代表着 user1_id 和 user2_id 之间存在着朋友关系。

喜欢列表: Likes

±------------±--------+

| Column Name | Type |

±------------±--------+

| user_id | int |

| page_id | int |

±------------±--------+

这张表的主键是 (user_id, page_id)。

这张表的每一行代表着 user_id 喜欢 page_id。

写一段 SQL 向user_id = 1 的用户,推荐其朋友们喜欢的页面。不要推荐该用户已经喜欢的页面。

你返回的结果中不应当包含重复项。

输入

输出

sql 复制代码
with t1 as (select case
                       when user1_id = 1 then user2_id
                       else user1_id
                       end as fri_id
            from friendship
            where user1_id = 1
               or user2_id = 1)
select distinct page_id
from t1,
     likes
where t1.fri_id = Likes.user_id
  and Likes.page_id != (select page_id from likes where user_id = 1)
order by page_id;
相关推荐
爱吃南瓜的北瓜6 分钟前
Redis的Key的过期策略是怎样实现的?
数据库·redis·bootstrap
zero_one_Machel8 分钟前
leetcode73矩阵置零
算法·leetcode·矩阵
一心只为学20 分钟前
Oracle密码过期问题,设置永不过期
数据库·oracle
小光学长29 分钟前
基于vue框架的宠物销售管理系统3m9h3(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。
数据库
小菜yh1 小时前
关于Redis
java·数据库·spring boot·redis·spring·缓存
立志成为coding大牛的菜鸟.1 小时前
力扣1143-最长公共子序列(Java详细题解)
java·算法·leetcode
鱼跃鹰飞1 小时前
Leetcode面试经典150题-130.被围绕的区域
java·算法·leetcode·面试·职场和发展·深度优先
Microsoft Word1 小时前
数据库系统原理(第一章 数据库概述)
数据库·oracle
华为云开源1 小时前
openGemini 社区人才培养计划:助力成长,培养新一代云原生数据库人才
数据库·云原生·开源
小安运维日记3 小时前
Linux云计算 |【第四阶段】NOSQL-DAY1
linux·运维·redis·sql·云计算·nosql