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

如何在MySQL中通过foreign key关联查询并替换外键为对应名称?

解决方法:将Friend表中的ID替换为对应用户名

这问题其实很常见,核心就是通过两次关联Account表,分别把user_id和frn_id映射成对应的用户名。直接看具体的SQL语句:

SELECT 
    f.id,
    a1.name AS user_id,
    a2.name AS frn_id
FROM friend f
INNER JOIN account a1 ON f.user_id = a1.id
INNER JOIN account a2 ON f.frn_id = a2.id;

简单解释下逻辑:

  • 给friend表起别名f,方便后续引用;
  • 第一次关联account表(别名a1),用friend.user_id和account.id匹配,拿到当前用户的名字,并重命名为user_id(对应你想要的结果列名);
  • 第二次关联account表(别名a2),用friend.frn_id和account.id匹配,拿到朋友的名字,重命名为frn_id;
  • 最后查询friend表的id,加上两个关联得到的用户名,就得到你想要的结果了。

如果你的业务场景中,friend表可能存在user_id或frn_id在account表中没有对应记录的情况(虽然题目里是外键约束,理论上不会有),可以把INNER JOIN换成LEFT JOIN,这样即使没有对应记录,也会保留这条数据,对应的用户名会显示为NULL。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 11:07:43