用于根据条件获取值的SQL查询

时间:2016-07-11 14:18:59

标签: sql sql-server

您好我需要一个帮助才能获得一个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

任何人都可以帮我做到这一点。

3 个答案:

答案 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;