SQL - IN而不是UNION

时间:2017-07-01 13:17:11

标签: sql union

如何使用IN代替UNION从以下查询中获得相同的结果集?

select course_id 
from section 
where semester = 'Fall' 
  and year = '2009' 

union

select course_id 
from section 
where semester = 'Spring' 
  and year = '2010';

1 个答案:

答案 0 :(得分:2)

or开始:

select course_id
from section
where (semester = 'Fall' and year = '2009') or
      (semester = 'Spring' and year = '2010');

如果course_id可能位于多行上,请使用select distinctunion自动执行distinct

某些数据库支持元组格式,允许您执行:

select course_id
from section
where (semester, year) in ( ('Fall', '2009'), ('Spring', '2010'));

一些,但不是全部。因此,这可能适用于您正在使用的数据库,也可能不适用。