【问题标题】:Getting information from "users" table about users who I'm friends with. relational/join SQL table?从“用户”表中获取有关我是朋友的用户的信息。关系/连接 SQL 表?
【发布时间】:2016-07-03 02:31:49
【问题描述】:

所以我正在尝试制作一种社交媒体功能,您可以在其中查看用户个人资料,您可以看到他的朋友列表以及他们的个人资料照片和他们的姓名,如下所示:

我正在处理的 SQL 表是“users”表和“friendships”表:

“用户”表:

如何从我当前所在页面的用户的朋友那里获取 first_name、last_name 和 user_avatar 信息?

(我将当前所在页面的用户的UserID 存储在一个名为$UserID 的变量中。假设当前为$UserID = 1

【问题讨论】:

  • “当前”用户在您的friendships 表中用作“接受者”?
  • 这两个表到底有什么关系?
  • @PM77-1 RequesterID 和 AccepterID 对应 'users' 表中某个用户的 UserID
  • @RomanPerekhrest 当前用户可以是AccepterID或者RequesterID
  • @FreddyErichsen,那么RequesterIDAccepterID 在您的概念中是什么意思?哪个是当前用户的“朋友”?

标签: php mysql database join relational


【解决方案1】:

要获取用户的朋友信息,请使用以下查询(如果“当前”用户在friendships 表中用作“接受者”):

// php code: $userID = 1;

SELECT u.first_name, u.last_name, u.user_avatar
FROM users AS u
INNER JOIN friendships AS fr ON fr.RequesterID = u.UserID
WHERE fr.AccepterID = $userID AND fr.friendship_active = 1;

【讨论】:

  • 感谢您的回答,但“当前”用户可以是 AccepterID 或 RequesterID,我猜这会使查询变得更加复杂。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-08
相关资源
最近更新 更多