用户建议遵循

Suggestions of users to follow

我在社交媒体网站上工作,但我无法理解如何给出要关注的建议用户列表。

用户table:-

id  |  name  |  username  |  password

关系table:-

id  |  followee  |  follower

其中 followee 和 follower 是用户的外键 table。 我尝试了一些 sql 连接,还在后端添加了一些逻辑,但这没有用。 这是我试过的:-

select u.id, u.name from users u, relationship r on u.id = r.follower where u.id != (user_id) and r.follower != (user_id)

这里 user_id 我必须传递登录用户的 ID,所以我想 return 当前用户未关注的用户列表,如果关系 table 为空则它必须 return 来自用户 table 的所有用户,当前用户除外。

这里我还想 return 来自用户 table 和关注者列的不同值。

这里 image 我提供了示例数据的图像。 如果当前用户id 187跟随所有用户那么它必须return空数据。

如果当前用户id 188没有关注任何人那么它必须return 187和198的数据。

您想使用 NOT IN:

SELECT u.id, u.name FROM users u
WHERE u.id NOT IN (
  SELECT r.followee FROM relationship
  WHERE r.follower = (user_id) 
) AND u.id != (user_id)