您好我需要一个帮助才能获得一个SQL查询。我有一张桌子'EMP'。
id name mid
1 A 1
2 B 1
3 C 2
4 D 1
5 E 2
我希望结果为
id name mid
1 A A
2 B A
3 C B
4 D A
5 E B
任何人都可以帮我做到这一点。
答案 0 :(得分:1)
这是一个简单的自我加入:
select id, t1.name, t2.name from emp t1 join emp t2 on t1.mid=t2.id
答案 1 :(得分:1)
使用内部联接:
select EMP1.id, EMP1.name, EMP2.name AS MID from EMP AS EMP1 INNER JOIN EMP AS EMP2 on EMP1.mid=EMP2.id
ORDER BY EMP1.ID
答案 2 :(得分:0)
在@alex旁边你也可以试试这两个:
方法1
SELECT T.Id ,T.Name ,D.Name AS mid
FROM EMP AS D
CROSS APPLY (SELECT Id ,Name FROM EMP AS T WHERE mid = D.id) AS T;
方法2
SELECT Id ,Name ,(SELECT Name FROM EMP WHERE id = T.mid) AS mid
FROM EMP AS T;