#进阶10:合并查询(联合查询)
引入:一个结果集的查询的数据来自于多张表。但多张表之间没有任何关联关系。
语法:
select 查询列表 from 表1 union
select 查询列表 from 表2 union
…
select 查询列表 from 表n
特点:
①要求实现union的多条查询语句的查询列数必须一致,列名无要求,列的意义无要求,但建议一致!
②union默认实现的是去重查询。如果不想去重,则使用union all
#案例1:查询所有国家的用户信息 SELECT id 编号,cname 姓名 ,cgender 性别 FROM chinese UNION SELECT uid,uname,uname FROM usa; #案例2: SELECT 1,100,'张三' UNION ALL SELECT 1,100,'张三' UNION ALL SELECT 1,100,'张三' UNION ALL SELECT 1,100,'张三' UNION ALL SELECT 1,100,'张三' #一张表的联合查询 #案例3:查询姓名包含字符a的或工资>10000或部门编号<120或奖金不为null #使用or SELECT * FROM employees WHERE last_name LIKE '%a%' OR salary>10000 OR department_id<120 OR commission_pct IS NOT NULL; #联合查询 SELECT * FROM employees WHERE last_name LIKE '%a%' UNION SELECT * FROM employees WHERE salary > 10000 UNION SELECT * FROM employees WHERE department_id<120 UNION SELECT * FROM employees WHERE commission_pct IS NOT NULL;