SQL - union 联合查询

841 阅读1分钟

什么是 union 查询?

union 查询就是把 2 条或者多条 sql 的查询结果,合并成 1 个结果集。

sqlOne 返回 N 行。         
sqlTwo 返回 M 行。

sqlOne union sqlTwo , 返回 N + M 行。

union 查询的前提条件:

使用 union 联合查询的各条 sql 语句查询出的列数必须相同。

eg:
    select uid, name, age from user
    union
    select id, name, sex from tmp;

其他特征:

1. 列名可以不同,查询出的结果列名称以第一条 sql 的列名称为准。

2. 完全相等的行,将会被合并。(使用 "union all" 代替 union 可以避免合并)。

3. union 的子句中,不用写 order by. sql 合并后得到的总的结果,可以 order by, 子句的 order by 失去意义。