详解MySQL中UNION的用法

 更新时间:2015年05月25日 10:33:34   投稿:goldensun  
这篇文章主要介绍了详解MySQL中UNION的用法,是MySQL入门学习中的基础知识,需要的朋友可以参考下

如果想选择其他几个表中的行或从一个单一的表作为一个单独的结果集行的几个集会,那么可以使用的UNION。

UNION在MySQL4.0以上版本才能可以使用。本节说明如何使用它。

假设有两个表,潜在和实际的客户列表,供应商购买耗材合并所有三个表中的姓名和地址,来创建一个单一的邮件列表。UNION提供了一种方法做到这一点。假设三个表有以下内容:

mysql> SELECT * FROM prospect;
+---------+-------+------------------------+
| fname | lname | addr     |
+---------+-------+------------------------+
| Peter | Jones | 482 Rush St., Apt. 402 |
| Bernice | Smith | 916 Maple Dr.   |
+---------+-------+------------------------+
mysql> SELECT * FROM customer;
+-----------+------------+---------------------+
| last_name | first_name | address    |
+-----------+------------+---------------------+
| Peterson | Grace  | 16055 Seminole Ave. |
| Smith  | Bernice | 916 Maple Dr.  |
| Brown  | Walter  | 8602 1st St.  |
+-----------+------------+---------------------+
mysql> SELECT * FROM vendor;
+-------------------+---------------------+
| company   | street    |
+-------------------+---------------------+
| ReddyParts, Inc. | 38 Industrial Blvd. |
| Parts-to-go, Ltd. | 213B Commerce Park. |
+-------------------+---------------------+

这不要紧,如果所有的三个表具有不同的列名。下面的查询演示了如何选择一下子从三个表的名称和地址:

mysql> SELECT fname, lname, addr FROM prospect
-> UNION
-> SELECT first_name, last_name, address FROM customer
-> UNION
-> SELECT company, '', street FROM vendor;
+-------------------+----------+------------------------+
| fname    | lname | addr     |
+-------------------+----------+------------------------+
| Peter    | Jones | 482 Rush St., Apt. 402 |
| Bernice   | Smith | 916 Maple Dr.   |
| Grace    | Peterson | 16055 Seminole Ave. |
| Walter   | Brown | 8602 1st St.   |
| ReddyParts, Inc. |   | 38 Industrial Blvd. |
| Parts-to-go, Ltd. |   | 213B Commerce Park. |
+-------------------+----------+------------------------+

如果想选择所有记录,包括重复的,请ALL的第一个UNION关键字:

mysql> SELECT fname, lname, addr FROM prospect
-> UNION ALL
-> SELECT first_name, last_name, address FROM customer
-> UNION
-> SELECT company, '', street FROM vendor;
+-------------------+----------+------------------------+
| fname    | lname | addr     |
+-------------------+----------+------------------------+
| Peter    | Jones | 482 Rush St., Apt. 402 |
| Bernice   | Smith | 916 Maple Dr.   |
| Grace    | Peterson | 16055 Seminole Ave. |
| Bernice   | Smith | 916 Maple Dr.   |
| Walter   | Brown | 8602 1st St.   |
| ReddyParts, Inc. |   | 38 Industrial Blvd. |
| Parts-to-go, Ltd. |   | 213B Commerce Park. |
+-------------------+----------+------------------------+


相关文章

  • Sql group by 分组取时间最新的一条数据(示例代码)

    Sql group by 分组取时间最新的一条数据(示例代码)

    这篇文章主要介绍了Sql group by 分组取时间最新的一条数据,本文通过示例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2024-04-04
  • MySQL行锁、间隙锁和临键锁示例详解

    MySQL行锁、间隙锁和临键锁示例详解

    InnoDB存储引擎通过行锁、间隙锁和临键锁实现MVCC和基于锁的并发控制,确保事务隔离级别和避免死锁,本文给大家介绍MySQL行锁、间隙锁和临键锁,感兴趣的朋友跟随小编一起看看吧
    2025-11-11
  • 开启MySQL远程访问权限、允许远程连接方式

    开启MySQL远程访问权限、允许远程连接方式

    本文介绍了如何开启MySQL远程访问权限,包括修改用户host和添加最高权限用户的方法,同时,还涵盖了关闭防火墙以解决远程连接问题的步骤
    2024-11-11
  • oracle/mysql数据库多条重复数据如何取最新的

    oracle/mysql数据库多条重复数据如何取最新的

    最近开发的时候遇到一个任务,需要对重复的数据进行筛选,只取插入时间最早的一条数据,这篇文章主要给大家介绍了关于oracle/mysql数据库多条重复数据如何取最新的相关资料,需要的朋友可以参考下
    2024-08-08
  • MySQL连接池DataSource的使用及实践

    MySQL连接池DataSource的使用及实践

    DruidDataSource作为一款优秀的数据库连接池组件,不仅提供了高效的连接管理,还包含了丰富的监控和诊断功能,本文主要介绍了MySQL连接池DataSource的使用及实践,具有一定的参考价值,感兴趣的可以了解一下
    2024-07-07
  • MYSQL索引无效和索引有效的详细介绍

    MYSQL索引无效和索引有效的详细介绍

    MYSQL索引无效和索引有效的详细介绍,需要的朋友可以参考一下
    2013-05-05
  • MySQL字符串拼接与分组拼接字符串实例代码

    MySQL字符串拼接与分组拼接字符串实例代码

    做SQL查询时会经常需要,把查询的结果拼接成一个字符串,下面这篇文章主要给大家介绍了关于MySQL字符串拼接与分组拼接字符串的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-02-02
  • mysql为字段添加和删除唯一性索引(unique) 的方法

    mysql为字段添加和删除唯一性索引(unique) 的方法

    下面小编就为大家带来一篇mysql为字段添加和删除唯一性索引(unique) 的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • MySQL查询表中重复数据的实现

    MySQL查询表中重复数据的实现

    在数据库中,我们经常需要查询重复字段来确保数据的准确性,如果数据中有重复字段,则可能会导致查询结果错误,本文就想详细的介绍了MySQL查询表中重复数据,感兴趣的可以了解一下
    2023-08-08
  • MySQL中进行数据的加密和解密存储的操作方法

    MySQL中进行数据的加密和解密存储的操作方法

    在MySQL中,我们可以使用对称加密算法和非对称加密算法对数据进行加密和解密存储,通过合理选择加密算法和密钥管理,可以有效提高数据的安全性,防止敏感信息的泄露和非法获取,下面给大家分享MySQL中进行数据的加密和解密存储方法,感兴趣的朋友一起看看吧
    2024-05-05

最新评论