2017-02-01 43 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); 
相關問題