如何在一个表中获得两个不同ID的Name ?



所以我有一个包含列的表:

UID_person, UID_personHead, Firstname, LastName

UID_personhead的值等于UID_person。UID_personHead是管理器的UID_person所以我想查询它并返回类似

这样的内容
tbody> <<tr>2史密斯
UID_personFirstNameLastName使用UID_personHead的管理员名称
1莎拉道明>杰克
雅各大卫

UID_PersonHead上将表self join回自身

SELECT p.UID_Person, p.FirstName, p.LastName, m.FirstName
FROM person p
LEFT JOIN person m ON m.id = p.UID_PersonHead;

你的数据是这样的

declare @a table
(UID_person int, UID_personHead int, Firstname varchar(30), LastName varchar(30))
insert into @a 
(UID_person,UID_personHead,Firstname,LastName) values
(1 ,3,'Sarah','Smith'),
(2 ,4,'Jacob','Smith'),
(3 ,3,'Jack','johnson'),
(4 ,4,'David','johnson');

您需要将您的表与自身连接

select a0.UID_person, a0.Firstname, a0.LastName,a1.Firstname  
from @a a0
join @a a1
on a0.UID_personHead=a1.UID_person
where a1.UID_personHead<>a0.UID_person

最新更新