You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

开发好友请求系统遇阻:如何关联member表获取当前好友名称

解决好友名称查询的问题

嘿,这问题其实很常见,用SQL的JOIN关联查询就能轻松搞定!既然你已经能拿到user_id='2'的请求记录,只需要把requests表和member表关联起来,就能直接取出对应的好友名称了。

基础场景:获取你作为接收方的好友名称

如果你的需求是先查自己作为user_id(接收请求方)且状态为已通过(status=1)的记录,再拿对应好友的名字,可以用这个查询:

SELECT 
    r.request_id,
    r.user_id,
    r.friend_id,
    m.name AS friend_name, -- 取出好友的名称
    r.status
FROM requests r
INNER JOIN member m 
    ON r.friend_id = m.user_id -- 用requests的friend_id关联member的user_id
WHERE r.user_id = '2' AND r.status = 1;

这个语句会把每条符合条件的请求记录,和member表里对应friend_id的用户数据关联起来,直接返回好友名称。

完整场景:获取所有已通过的好友名称

如果要拿到所有和你成为好友的用户(不管是你加别人,还是别人加你),就得考虑两种情况:你是请求的接收方(user_id='2'),或者你是请求的发起方(friend_id='2'),可以用这个合并查询:

SELECT 
    DISTINCT m.user_id,
    m.name AS friend_name
FROM requests r
INNER JOIN member m 
    ON (r.user_id = '2' AND r.friend_id = m.user_id)
    OR (r.friend_id = '2' AND r.user_id = m.user_id)
WHERE r.status = 1;
  • 用OR覆盖两种好友关系场景
  • DISTINCT用来避免重复的好友记录(比如你们互相发送请求且都通过的情况)

小提示

  • 确保member表中存储用户名称的字段是name,如果你的字段名是username或者其他,记得替换成实际字段名
  • 如果需要更清晰的字段别名,可以自己调整AS后面的名称

内容的提问来源于stack exchange,提问作者Kaleem Shahid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:57:02