This Leetcode problem Page Recommendations LeetCode Solution is done in SQL.
List of all LeetCode Solution
![Page Recommendations LeetCode Solution](https://i0.wp.com/totheinnovation.com/wp-content/uploads/2024/02/LeetCode-Problem-Solution.png?resize=200%2C200&ssl=1)
Page Recommendations LeetCode Solution
Table of Contents
Problem Statement
Column Name | Type |
user1_id | int |
user2_id | int |
(user1_id, user2_id) is the primary key for this table.
Each row of this table indicates that there is a friendship relation between user1_id and user2_id.
Column Name | Type |
user_id | int |
page_id | int |
(user_id, page_id) is the primary key for this table.
Each row of this table indicates that user_id likes page_id.
Write an SQL query to recommend pages to the user with user_id = 1 using the pages that your friends liked. It should not recommend pages you already liked.
Return result table in any order without duplicates.
The result format is in the following example.
Example 1:
Input:
user1_id | user2_id |
1 | 2 |
1 | 3 |
1 | 4 |
2 | 3 |
2 | 4 |
2 | 5 |
6 | 1 |
user_id | page_id |
1 | 88 |
2 | 23 |
3 | 24 |
4 | 56 |
5 | 11 |
6 | 33 |
2 | 77 |
3 | 77 |
6 | 88 |
Output:
recommended_page |
23 |
24 |
56 |
33 |
77 |
Explanation:
User one is friend with users 2, 3, 4 and 6.
Suggested pages are 23 from user 2, 24 from user 3, 56 from user 3 and 33 from user 6.
Page 77 is suggested from both user 2 and user 3.
Page 88 is not suggested because user 1 already likes it.
Page Recommendations LeetCode Solution MySQL
select
distinct page_id as recommended_page
from
Likes as l
left join Friendship as f on f.user2_id = l.user_id
where
f.user1_id = 1
and page_id not in (
select
page_id
from
Likes
where
user_id = 1
)
union
select
distinct page_id as recommended_page
from
Likes as l
left join Friendship as f on f.user1_id = l.user_id
where
f.user2_id = 1
and page_id not in (
select
page_id
from
Likes
where
user_id = 1
);
Code language: SQL (Structured Query Language) (sql)