联合查询
说明:当查询结果来自于多张表,但多表之前没有关联,这个时候往往需要使用联合查询,也称为union查询
语法:
select 查询列表 from 表1 where 筛选条件
union
select 查询列表 from 表2 where 筛选条件
特点:
- 哪个表先写,哪个表的数据在前面
- 多条查询语句的查询列数必须一致
- 如果在多条查询语句中列的顺序不一样,效果可以显示,但是不存在意义
- union自动去重,union all支持重复项
案例一:那个表先写,那个表的数据在前面
#查询所有国家的年龄>20岁的用户信息
SELECT * FROM chinese WHERE cage>20
UNION
SELECT * FROM usa WHERE age>20;
案例二:
- 多条查询语句的查询列数必须一致
- 如果在多条查询语句中列的顺序不一样,效果可以显示,但是不存在意义
#查询所有国家的用户姓名和年龄
SELECT cname,cage FROM chinese
UNION
SELECT `name`,age FROM usa;
列数不一致
SELECT cname,cage FROM chinese
UNION
SELECT `name` FROM usa;
列的顺序不一致
SELECT cname,cage FROM chinese
UNION
SELECT age,`name` FROM usa;
案例三:union自动去重,union all支持重复项
SELECT 1,'哈哈哈'
UNION
SELECT 1,'哈哈哈'
UNION
SELECT 1,'哈哈哈'
UNION
SELECT 1,'哈哈哈'
UNION
SELECT 1,'哈哈哈';
SELECT 1,'哈哈哈'
UNION ALL
SELECT 1,'哈哈哈'
UNION ALL
SELECT 1,'哈哈哈'
UNION ALL
SELECT 1,'哈哈哈'
UNION ALL
SELECT 1,'哈哈哈';