UNION操作符

UNION操作符返回两个查询的结果集的并集,去除重复记录
例子:
查询部门编号>90或邮箱包含a的员工信息

  1. select *
  2. from employees
  3. where email like '%a%'
  4. or
  5. department_id > 90;
  6. # 或者
  7. select *
  8. from employees
  9. where email like '%a%'
  10. union
  11. select *
  12. from employees
  13. where department_id > 90;

UNION ALL操作符

UNION ALL操作符返回两个查询的结果集的并集。对于两个结果集的重复部分,不去重。
例子:
查询中国用户中男性的信息以及美国用户中年男性的用户信息

  1. select id, cname
  2. from t_chinamale
  3. where csex like '男'
  4. union all
  5. select id, tname
  6. from t_usmale
  7. where tGender = 'male';


注意:
执行UNION ALL语句时所需要的资源比UNION语句少。如果明确知道合并数据后的结果数据不存在重复数据,或者不需要去除重复的数据,则尽量使用UNION ALL语句,以提高数据查询的效率。