开发者社区> 问答> 正文

一张桌子上有许多外键

已解决

我什至不知道如何搜索它,所以我决定在这里问。我的MySQL数据库中有两个表:

表: users

user_id | user_name | user_surname ---------+-----------+------------- 111 | Tom | Hanks 112 | Martin | Dubravka
113 | Gary | Muller 114 | Grzegorz | Kowalewski 115 | Chris | Anderson 116 | John | Smith

表: best_users

id | best_user_1 | best_user_2 | best_user_3 | best_user_4 | best_user_5 | best_user_6
-------+-------------+-------------+-------------+-------------+-------------+------------- 1 | 115 | 114 | 112 | 116 | 111 | 113

best_user_id 场的外键字段user_id的users表。

我想要实现的是获得(在一个查询中最好):

id | best_user_1 | user_name1 | user_surname1 | best_user_2 | user_name2 | user_surname2 | best_user_3 | ... -------+--------------+------------+---------------+-------------+------------+---------------+-------------+---- 1 | 115 | Chris | Anderson | 114 | Grzegorz | Kowalewski | 112 | ...

在纯SQL中的一个查询中是否可能?当然我可以best_users先获得,然后再user_name根据best_user_x领域获得。应该通过某种JOIN完成吗?

问候

中号

展开
收起
保持可爱mmm 2019-12-18 16:56:30 513 0
1 条回答
写回答
取消 提交回答
  • 采纳回答

    我希望你喜欢打字......你需要JOIN到users表6次,一次为每个best_user:

    SELECT id, best_user_1, u1.user_name AS user_name1, u1.user_surname AS user_surname1, ... best_user_6, u6.user_name AS user_name6, u6.user_surname AS user_surname6 FROM best_users JOIN users u1 ON u1.user_id = best_users.best_user_1 ... JOIN users u6 ON u6.user_id = best_users.best_user_6

    问题来源于stack overflow

    2019-12-18 16:57:00
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载