首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SQL查询返回所有地区的结果,但我只需要一个区就可以显示。

SQL查询返回所有地区的结果,但我只需要一个区就可以显示。
EN

Stack Overflow用户
提问于 2013-05-20 18:20:37
回答 1查看 256关注 0票数 0

我试图为districtIDNum = 5中那些完成了courseIDNum=11courseIDNum=12的人获取数据,但不是两者都完成。

但是,在我执行查询之后,它返回了所有的区域。我做错什么了?请帮忙,并提前感谢!

代码语言:javascript
运行
复制
SELECT p.FirstName, p.LastName, p.Email, s.CourseIDNum
FROM People p
INNER JOIN Registration r
 on p.PeopleID = r.PeopleIdNum
INNER JOIN Section s
 on r.SectionIDNum = s.SectionID
INNER JOIN School sc
 on p.SchoolIDNum = sc.SchoolID
WHERE (s.CourseIDNum=11 AND s.CourseIDNum!=12)
  OR (s.CourseIDNum!=11 AND s.CourseIDNum=12)
  AND s.DistrictIDNum=5
  AND r.Completed='Y'

以下是所涉及的表格:

1               Esther         B                b@hotmail.com    33

2               Tommy        L                 l@hotmail.com     55

注册、注册、商业、商业等

22

23

部门性、无偿性、无偿性、专门性、区域性

40

41

学校 专区

33

55

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-20 18:30:56

为了只返回那些选择了一种或另一种而不是两者兼而有之的人,试着:

代码语言:javascript
运行
复制
SELECT max(p.FirstName), 
       max(p.LastName), 
       max(p.Email), 
       max(s.CourseIDNum)
FROM People p
INNER JOIN Registration r
 on p.PeopleID = r.PeopleIdNum
INNER JOIN Section s
 on r.SectionIDNum = s.SectionID
INNER JOIN School sc
 on p.SchoolIDNum = sc.SchoolID
WHERE s.CourseIDNum IN (11, 12)
   AND s.DistrictIDNum = 5
   AND r.Completed='Y'
group by p.PeopleID
having count(distinct s.CourseIDNum)=1

SQLFiddle 这里.

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16655786

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档