2017-02-01 40 views
0

我有这个疑问:如何通过他的ID获取每个用户的姓名?

SELECT DISTINCT p1.rootid AS user_id, p1.rid AS friend_id 
FROM relations p1 
WHERE rootid = 1246 
    OR rootid IN (SELECT p2.rid 
       FROM relations p2 
       WHERE rootid = 1246); 

它的结果是这样的:

enter image description here

另外我有一个包含名称的表。事情是这样的:

// users 
+------+_--------+ 
| id | name | 
+------+---------+ 
| 1246 | Jack | 
| 1247 | Peter | 
| 1246 | Ali  | 
| . | .  | 
| . | .  | 
| . | .  | 
+------+---------+ 

现在我想,而不是IDS输出。注意到user_idfriend_id参见users表。我怎样才能做到这一点?

+0

你意味着,你想获得USER_NAME代替USER_ID和FRIEND_NAME代替friend_id吧? – rahulsm

+0

使用用户表连接 – MayurB

回答

0

尝试这样的事情,

SELECT u1.name user_name, u2.name friend_name from relations r 
INNER JOIN users u1 ON u1.id = r.user_id 
INNER JOIN users u2 ON u2.id = r.friend_id 
where r.user_id = 1246 

希望这将解决您的问题。

0

试试这个:

SELECT DISTINCT u.name AS user_name, f.name AS friend_name 
FROM relations p1 
INNER JOIN user u ON u.id = p1.rootid 
INNER JOIN user f ON f.id = p1.rid 
WHERE rootid = 1246 
    OR rootid IN (SELECT p2.rid 
       FROM relations p2 
       WHERE rootid = 1246); 
相关问题