MySQL数据库:第十一章:合并查询(联合查询)

回退至Mysql数据库理论与实战

#进阶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;