我也不知道该如何搜索它,所以我决定在这里询问。我的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完成吗?
致谢
M
答案 0 :(得分:2)
我希望您喜欢输入...,您需要JOIN
6次到users
表中,每个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