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;
相关推荐
IAtlantiscsdn24 分钟前
Redis Stack扩展功能
java·数据库·redis
没有bug.的程序员1 小时前
Redis 大 Key 与热 Key:生产环境的风险与解决方案
java·数据库·redis·缓存·热key·大key
王维志1 小时前
LiteDB详解
数据库·后端·mongodb·sqlite·c#·json·database
2301_815357701 小时前
parameterType和@Param注解的区别
java·开发语言·数据库
零雲1 小时前
除了缓存,我们还可以用redis做什么?
数据库·redis·缓存
cyforkk2 小时前
MySQL 唯一约束:从基础到实战,解决数据重复的核心工具
数据库·mysql
爱编程的化学家2 小时前
代码随想录算法训练营第十一天--二叉树2 || 226.翻转二叉树 / 101.对称二叉树 / 104.二叉树的最大深度 / 111.二叉树的最小深度
数据结构·c++·算法·leetcode·二叉树·代码随想录
不想被吃掉氩2 小时前
MySQL的事务特性和高可用架构
数据库·oracle
万添裁2 小时前
关系模型的数据结构
数据库
吃着火锅x唱着歌3 小时前
LeetCode 1446.连续字符
算法·leetcode·职场和发展