我想要做出选择,从同一个表的两列中查找 ID 到用户名的值:
表:礼物
FromID ToID
1 2
2 6
3 2
5 3
表L 用户
UserID Username
1 A
2 B
3 C
4 D
5 E
6 F
预期输出:
FromUser ToUser
A B
B F
C B
E C
最佳答案
这是使用 JOIN
和 IN
条件的一个技巧
SELECT Max(CASE WHEN FromID = u.UserID THEN Username END),
Max(CASE WHEN ToID = u.UserID THEN Username END)
FROM users u
JOIN gift g
ON u.UserID IN ( g.FromID, g.ToID )
GROUP BY FromID,
ToID
或者您需要加入 users
表两次
SELECT f.Username,
t.Username
FROM gift g
LEFT JOIN users f
ON f.UserID = g.FromID
LEFT JOIN users t
ON t.UserID = g.ToID
关于mysql - 具有两列的内连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41920700/