2016-01-05 25 views
1

我有他們之間的聯繫,第一臺「用戶」有用戶ID的兩個表,並

| id | name 
------------------ 
| 1  | james 
| 2  | johnny 
| 3  | Carl 
| 4  | Lea 

我的第二個表包含鏈接的用戶 linked_users

| id | linked_id 
-------------------- 
| 1  | 2 
| 1  | 4 
| 2  | 3 

我需要得到兩個字段包含每個用戶的名稱以及鏈接用戶的名稱。

我試過這個,但它不能正常工作。

SELECT case WHEN u.user_id = l.user_id then user_name end as username, 
case WHEN u.user_id = l.link_user_id then user_name end as linked 
FROM 
    panel_user u, link_view_user l WHERE l.link_user_id = u.user_id 

我很感激任何幫助,謝謝。

回答

3

您必須將panel_user表兩次連接到link_view_user表。一旦使用id,然後使用link_user_id列。

SELECT u2.name as id_name, u1.name as linked_id_name 
FROM link_view_user l 
join panel_user u1 on u1.id = l.linked_id 
join panel_user u2 on u2.id = l.id 
+0

這將有助於但如果你添加了一些解釋。 –

1

試試這個:

SELECT u1.name AS username, 
     u2.name AS linked 
FROM linked_users lu 
INNER JOIN users u1 ON lu.id = u1.id 
INNER JOIN users u2 ON lu.linked_id = u2.id 
+0

謝謝,這兩個答案的作品 – Nejthe