说我们有这样的日程表
course day
A MONDAY
A WEDNESDAY
B MONDAY
C WEDNESDAY
我的问题是,如何选择星期一和星期三的课程?
感谢
答案 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 |