当前位置:首页 > 数据库 > 其他数据库

关于多对多查询有关问题

优良自学吧提供关于多对多查询有关问题,关于多对多查询问题人员 与 项目,关系为多对多。 人员表 create table Person ( personId int primary key,   name char(20

关于多对多查询问题
人员 与 项目,关系为多对多。
人员表
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';

这个方法比较笨,呵呵,我也是才学。等大神吧

(本文来自互联网,不代表搜站(http://www.ylzx8.cn/)的观点和立场)
本站所有内容来自互联网,若本站收录的信息无意侵犯了贵司版权,请给我们来信(ylzx8cn@163.com),我们会及时处理和回复,谢谢