2015-10-31 35 views
0

我有一個表,像下面:SQL,檢查,對另一個值值和返回兩個

my_ID fName lName friend_ID 
001 John Smith 002 
002 Mark Math 003 

我想要一個查詢,將得到FNAME,LNAME用於添加my_id,同時也檢查friend_ID值針對my_ID值,以及何時發現匹配返回fName,lName在不同的行中。

新表應該是這樣的:

My Name  Friend Name 
John Smith Mark Math 

回答

0

自加入是你在找什麼。

考慮到只會有1個朋友的方式。

SELECT CONCAT(T1.fName,' ',T1.lName) AS My_Name, 
     CONCAT(T2.fName,' ',T2.lName) AS Friend_Name 
     FROM table_name T1 
     INNER JOIN table_name T2 ON T1.my_ID = T2.friend_ID 

如果沒有.of的朋友可以爲0(無朋友),1(單身的朋友),1 +(更多的朋友)

SELECT CONCAT(T1.fName,' ',T1.lName) AS My_Name, 
     GROUP_CONCAT(CONCAT(T2.fName,' ',T2.lName)) AS FriendsNames 
     FROM table_name T1 
     LEFT JOIN table_name T2 ON T1.my_ID = T2.friend_ID 
     GROUP BY T1.my_ID 

希望這有助於

0

試試這個:

SELECT 
CONCAT(A.fName, ' ', A.lName) as My_Name, 
CONCAT(B.fName, ' ', B.lName) as Friend_Name 
FROM table_name A 
INNER JOIN table_name B ON A.my_ID = B.friend_ID