用户表
------------------------
id | name
------------------------
1 | Bob Smith
2 | Jane Doe
3 | Fred Flintstone
4 | Barney Rubble
5 | Marge Simpson
... | ...
连接
-----------------------------------------------
connection1 | connection2 | connector
------------------------------------------------
1 | 3 | 7
11 | 5 | 7
35 | 7 | 7
18 | 9 | 7
12 | 13 | 6
... | ... | ...
以上是我在MySQL数据库中拥有的表的示例。我知道我可以使用WHERE子句返回单个用户ID,但我想从同一个用户表中解析所有ID。有没有优雅的解决方案只返回一个MySQL语句中的用户名?
基本上返回一个这样的表:
-----------------------------------------------
connection1 | connection2 | connector
------------------------------------------------
Tim | Steven | Charlie
答案 0 :(得分:0)
为了完成您要执行的操作,您需要多次加入用户表(每个连接一个)。像下面这样的东西应该做你想做的事。
SELECT
t1.name as 'connection1',
t2.name as 'connection2',
t3.name as 'connection3'
FROM connections c
JOIN user t1 on t1.id = c.connection1
JOIN user t2 on t2.id = c.connection2
JOIN user t3 on t3.id = c.connection3
答案 1 :(得分:0)
SQL 101.使用连接:
SELECT
c1.name AS connection1_name,
c2.name AS connection2_name,
connector
FROM Connections cn
JOIN users c1 ON c1.Id = cn.connection1
JOIN users c2 ON c2.Id = cn.connection2