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

时间:2013-02-23 10:33:02

标签: sql-server distinct

我在PersonId表格中有People个人。

现在,我已根据名为PositionIdPersonId的表格为这些人员分配了职位。 该表的结构如下: -

CorporateTeam
PersonId    PositionId
1           1
2           2
2           3

因此PersonId 2的人有多个职位。

现在我有另一张基于Skills

PositionId表格

所以我想基于PersonId为特定的人检索多个不同技能。

1 个答案:

答案 0 :(得分:0)

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