我有一张桌子,如下所示:
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
答案 0 :(得分:0)
自我加入就是您要找的。 p>
考虑到所有方式只有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