mysql - 具有两列的内连接

标签 mysql sql select inner-join

我想要做出选择,从同一个表的两列中查找 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

最佳答案

这是使用 JOININ 条件的一个技巧

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/

相关文章:

mysql - sql 选择移动范围

sql - 如何获取存储过程中引用的所有列的列表?

sql - 从年度条目创建范围映射记录

sql - 返回 WHERE 子句不完全匹配的行

java - 刷新<s :select> tag on changing backing Java collection in Struts 2

mysql - 使用 2 进行一个选择查询,查询在同一个表上进行操作

javascript - 使用在水线/sails 中查找来获取更少的字段

mysql - 使用位图字符串存储两个实体之间的映射

database - 在 couchbase 查询之间

mysql - 如何在一个表中进行交叉选择?