SQL如何用给定的条件选择?

时间:2013-02-01 06:22:50

标签: mysql sql database

说我们有这样的日程表

course    day

  A       MONDAY

  A       WEDNESDAY

  B       MONDAY

  C       WEDNESDAY

我的问题是,如何选择星期一和星期三的课程?

感谢

2 个答案:

答案 0 :(得分:2)

这种类型的问题称为关系部门。

SELECT  course
FROM    tableName
WHERE   day IN ('Monday', 'Wednesday')
GROUP   BY course
HAVING  COUNT(*) = 2

该解决方案比使用join更灵活,因为即使您有其他条件,查询的结构也不会改变。 如果要搜索三个值,该怎么办?你会提供另一个连接吗?这个查询很好,只会改变值,

其他来源:

答案 1 :(得分:0)

Fiddle link for sample query execution

create table schedule (course varchar2(10),day varchar2(20));
insert into schedule values('A','MONDAY');
insert into schedule values('A','WEDNESDAY');
insert into schedule values('B','MONDAY');
insert into schedule values('C','WEDNESDAY');

select s1.course
 from 
  schedule s1,schedule s2 
 where 
  s1.course=s2.course 
 AND
  s1.day='MONDAY'
 AND
  s2.day='WEDNESDAY';

<强>输出

| COURSE |
----------
|      A |