SQL,检查另一个值的值并返回

时间:2015-10-31 18:02:23

标签: mysql sql

我有一张桌子,如下所示:

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

我想要一个查询来获取my_ID的fName,lName,还要检查friend_ID的值是否符合my_ID值,当找到匹配时,返回fName,lName在另一行中。

新表应该是这样的:

My Name      Friend Name
John Smith   Mark Math

2 个答案:

答案 0 :(得分: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

如果没有朋友可以是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

希望这有帮助

答案 1 :(得分: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