当前位置: 代码迷 >> 其他数据库 >> 关于多对多查询有关问题
  详细解决方案

关于多对多查询有关问题

热度:89   发布时间:2016-05-05 08:15:10.0
关于多对多查询问题
人员 与 项目,关系为多对多。
人员表
create table Person
( personId int primary key,
  name char(200)
);
项目表
create table Project
( projectId int primary key,
  name char(200)
);
关联表
create table PersonProject
( personId int,
  projectId int
);
现有人员4个(人员1,人员2,人员3,人员4)
项目4个(项目1,项目2,项目3,项目4)
人员参与项目情况:
人员1 -> (项目1,项目2)
人员2 -> (项目1,项目2,项目3)
人员3 -> (项目2,项目3)
人员4 -> (项目1,项目3,项目4)

想要求查询同时参与项目1与项目2的人员是谁?答案应该是人员1,人员2!
求sql语句写法?注意是同时参与项目1和项目2,不是参与项目1或项目2!!!
------解决思路----------------------
select distinct pp.personid 
from PersonProject pp,PersonProject pp1
where pp.personid=pp1.persionid and pp.project='项目1' and pp1.Projectid='项目2';

这个方法比较笨,呵呵,我也是才学。等大神吧
  相关解决方案