Sql server 从具有多个输入的表中选择不同的id

Sql server 从具有多个输入的表中选择不同的id,sql-server,distinct,Sql Server,Distinct,我有一个人和我一起坐在人桌上 现在我已经根据名为PositionId和PersonId的表为这些人分配了职位。 该表的结构如下:- CorporateTeam PersonId PositionId 1 1 2 2 2 3 因此,一个具有Personid2的人有多个位置 现在我有了另一个基于PositionId的技能表 因此,我想根据PersonId检索特定人员的多种不同技能。请解释。问题不清楚 create table Per

我有一个人和我一起坐在人桌上

现在我已经根据名为PositionId和PersonId的表为这些人分配了职位。 该表的结构如下:-

CorporateTeam
PersonId    PositionId
1           1
2           2
2           3
因此,一个具有Personid2的人有多个位置

现在我有了另一个基于PositionId的技能表


因此,我想根据PersonId检索特定人员的多种不同技能。

请解释。问题不清楚
create table Person (
    PersonId int
)

create table Position (
    PersionId int,
    PositionId int
)

create table Skill (
    PositionId int,
    SkillId int
)
GO

insert into Person values (1), (2)
insert into Position values (1, 1), (2, 2), (2, 3)
insert into Skill values (2, 1), (2, 2), (3, 3)
GO

select distinct s.SkillId
from Person p
inner join Position pos on p.PersonId = pos.PersionId
inner join Skill s on pos.PositionId = s.PositionId
where p.PersonId = 2