首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在使用"AND“操作符显示所需结果时遇到困难

在使用"AND“操作符显示所需结果时遇到困难
EN

Stack Overflow用户
提问于 2013-05-22 20:29:56
回答 2查看 60关注 0票数 0

在获得查询以使用“”运算符检索所需结果时遇到困难。在firstnamelastnameemailcourseID 3门课程中,需要显示完成(健康老人(courseIDNum=11)Health New (courseIDNum=12))和(体育老年(courseIDNum=68 OR E 111PE New (courseIDNum=177))和课程in =128E 212的课程。请知道,1112实际上是同一门课程:一门是旧的,另一门是新的( 68177也是一样),因此,districtIDNum=5中的人只能选其中一门;这就是我尝试使用(11,12)的原因。但是,它不能正确工作,因为它返回0行。

代码语言: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.CourseIDNum IN (68, 177)
  AND s.CourseIDNum=128
  AND sc.DistrictIDNum = 5
  AND r.Completed='Y'
group by p.PeopleID
having count(distinct s.CourseIDNum)=1

不应该返回的行是来自完成Liz MdistrictIDNum=12courseIDNum=195。另一方面,来自Esther BdistrictIDNum=5已经完成了courseIDs 11, 177 and 128;因此,她的数据应该显示所有的3个过程On。数据还应该显示Tommy L已经完成了courseIDs 12 and 68

以下是示例表:

1               Esther         B                b@hotmail.com      33

2               Tommy        L                 l@hotmail.com       55

3               Liz               M                m@hotmail.com     90

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

22

23

24

25

26

27

部门性,非自愿性

40

41

52

63

78

132

课程编号

11

12

68

128个商品转制转制

177

[195]准准

学校 专区

33

55

90

EN

回答 2

Stack Overflow用户

发布于 2013-05-23 05:40:09

表示查询条件的方式

代码语言:javascript
复制
 s.CourseIDNum IN (11, 12)
 AND s.CourseIDNum IN (68, 177)
 AND s.CourseIDNum=128

意味着CourseIDNum必须同时等于一组整数。

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

一旦您有了人员列表,通过连接节记录来检索他们的课程as,如图示的herehere

票数 1
EN

Stack Overflow用户

发布于 2013-05-23 05:27:16

代码语言:javascript
复制
WHERE s.CourseIDNum IN (11, 12)
  AND s.CourseIDNum IN (68, 177)
  AND s.CourseIDNum=128

您的这个部分意味着您正在编写如下所示的查询

代码语言:javascript
复制
WHERE s.CourseIDNum IN (11,12,68,177) and courseIDNum = 128

这意味着CourseID值在一种情况下可以等于11,12,68,177,同时它应该等于128.这是不可能的所以我不确定,但是试着用

代码语言:javascript
复制
WHERE (s.CourseIDNum IN (11, 12,68,177)
  OR s.CourseIDNum=128)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16701051

复制
相关文章

相似问题

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