首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WHERE子句中使用AND和OR的MySQL查询

WHERE子句中使用AND和OR的MySQL查询
EN

Stack Overflow用户
提问于 2015-03-31 16:21:43
回答 2查看 29关注 0票数 1

我正在创建一个学生记录搜索查询。这所学校有三个俱乐部(数学、英语和科学)。我想做的是根据他们所加入的俱乐部的顺序来选择学生。--仅限数学的学生--仅限数学和英语的学生--仅限数学和科学的学生--仅限英语的学生--仅限英语的学生--仅限科学的学生

代码语言:javascript
复制
Student table (studentTB)

id | student_name | date_join
-----------------------------
 1 | Daniel Addo  | 2012-01-05
 2 |David Polles  | 2013-05-11
 3 | Grace Amorno | ---------
 4 | Zein Akill   | ---------

Club table (studentCLUB)

id | studentID | club
----------------------
1  | 1         | maths
2  | 1         | science
3  | 2         | science
4  | 2         | english
5  | 3         | science
6  | 4         | maths
7  | 4         | science
8  | 4         | english


SELECT *
    FROM studentTB
    INNER JOIN studentCLUB
    ON studentTB.id = studentCLUB.studentID
    WHERE (club = 'maths') OR (club = 'science') OR (day = 'english')
    GROUP BY studentTB.id

这就是我到目前为止所做的,当学生落入其中一个俱乐部时,它就会选择学生。但是当我把OR改为时,它给我的结果是null。如果有人能帮我,我会很高兴的。谢谢

EN

回答 2

Stack Overflow用户

发布于 2015-03-31 16:26:56

因此,你需要找到属于所有给定俱乐部的学生,你可以这样做。它将检查学生是否拥有所有给定的3个俱乐部。

代码语言:javascript
复制
SELECT *
FROM studentTB
INNER JOIN studentCLUB
ON studentTB.id = studentCLUB.studentID
WHERE
club in ('maths','science','english') 
GROUP BY studentTB.id
having count(*) = 3 
票数 0
EN

Stack Overflow用户

发布于 2015-03-31 16:29:39

代码语言:javascript
复制
SELECT * FROM studentTB
WHERE EXISTS(SELECT * FROM studentCLUB
WHERE studentTB.id = studentCLUB.studentID)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29363909

复制
相关文章

相似问题

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