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;
相关推荐
好学且牛逼的马3 分钟前
【Hot100|21-LeetCode 160. 相交链表】
算法·leetcode
我是黄骨鱼5 分钟前
【零基础学数据库|第二篇】MySql启动!!!
数据库·mysql
陌上丨6 分钟前
什么是Redis的大Key和热Key?项目中一般是怎么解决的?
数据库·redis·缓存
Remember_9937 分钟前
Spring 事务深度解析:实现方式、隔离级别与传播机制全攻略
java·开发语言·数据库·后端·spring·leetcode·oracle
小园子的小菜7 分钟前
深入剖析HBase HFile原理:文件结构、Block协作与缓存机制
数据库·缓存·hbase
空空kkk12 分钟前
SSM项目练习——hami音乐(三)
java·数据库
好奇的菜鸟19 分钟前
Ubuntu 18.04 启用root账户图形界面登录指南
数据库·ubuntu·postgresql
天桥下的卖艺者20 分钟前
使用R语言编写一个生成金字塔图形的函数
开发语言·数据库·r语言
Facechat32 分钟前
鸿蒙开发入坑篇(九):本地数据库 (RDB) 深度解析
数据库·华为·harmonyos
Dxy123931021633 分钟前
MySQL删除表语句详解
数据库·mysql