易错点
select
distinct page_id as recommended_page
from Likes
where user_id in
(
select
user2_id
from Friendship
where user1_id = 1
union
select
user1_id
from Friendship
where user2_id = 1
) and page_id != (select page_id from Likes where user_id = 1)
上述代码的错误点在于 page_id != (select page_id from Likes where user_id = 1) 中的 != ,由于select page_id from Likes where user_id = 1可能查询结果为NULL,导致page_id != NULL,此时最终的查询结果为空值。所以应该将!=改成NOT IN
参考答案
select
distinct page_id as recommended_page
from Likes
where user_id in
(
select
user2_id
from Friendship
where user1_id = 1
union
select
user1_id
from Friendship
where user2_id = 1
) and page_id not in (select page_id from Likes where user_id = 1)