当前位置: 首页 > 编程笔记 >

详解MySQL中UNION的用法

柳经纶
2023-03-14
本文向大家介绍详解MySQL中UNION的用法,包括了详解MySQL中UNION的用法的使用技巧和注意事项,需要的朋友参考一下

如果想选择其他几个表中的行或从一个单一的表作为一个单独的结果集行的几个集会,那么可以使用的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. |
+-------------------+----------+------------------------+


 类似资料:
  • 本文向大家介绍MySQL中BETWEEN子句的用法详解,包括了MySQL中BETWEEN子句的用法详解的使用技巧和注意事项,需要的朋友参考一下 可以使用IN子句来代替相结合的“大于等于和小于等于”的条件。 要了解BETWEEN 子句考虑的EMPLOYEE_TBL表有以下记录: 现在,假设根据上表想获取记录条件daily_typing_pages超过170,等于和小于300。这可以使用如下条件>=和

  • 问题内容: 我有两个表:-表a,表b。 表一 - -ID - - 表b - -ID - - 我必须在没有 UNION 命令的情况下获得这样的输出: - - ID - - - 注意:我有一个联合的解决方案:- 我需要替代方案。 请专家建议。 问题答案: 为此,我们需要另一个具有(至少)2行的表: 然后,如果我们只想要一个查询,则可以使用( 这很有趣,请不要在生产中使用 ,这就是为什么要使用 ): 在

  • 本文向大家介绍MySQL中replace into语句的用法详解,包括了MySQL中replace into语句的用法详解的使用技巧和注意事项,需要的朋友参考一下 在向表中插入数据的时候,经常遇到这样的情况: 1、首先判断数据是否存在; 2、如果不存在,则插入; 3、如果存在,则更新。   在 SQL Server 中可以这样写: 在MySQL 中也可以先select,判断是否存在,存在则 upd

  • 本文向大家介绍详解MySQL中的NULL值,包括了详解MySQL中的NULL值的使用技巧和注意事项,需要的朋友参考一下 我们已经看到使用WHERE子句的SQL SELECT命令来从MySQL表获取数据。但是,当我们试图给的条件比较字段或列的值为NULL,它不能正常工作。 为了处理这种情况,MySQL提供了三大运算符     IS NULL: 此运算符返回true,当列的值是NULL。     IS

  • 本文向大家介绍详解Mysql中的视图,包括了详解Mysql中的视图的使用技巧和注意事项,需要的朋友参考一下 视图: mysql中的视图,视图与表有很多相似的地方,视图也是由若干个字段以及若干条记录构成,视图也可以作为select语句的数据源。 视图中保存的仅仅是一条select语句,保存的是视图的定义,并没有保存真正的数据。视图中的源数据都来自于数据库表,数据库表称为基本表或者基表,视图称为虚表。

  • 本文向大家介绍Mysql中Join的使用实例详解,包括了Mysql中Join的使用实例详解的使用技巧和注意事项,需要的朋友参考一下 在前几章节中,我们已经学会了如果在一张表中读取数据,这是相对简单的,但是在真正的应用中经常需要从多个数据表中读取数据。 本章节我们将向大家介绍如何使用MySQL 的 JOIN 在两个或多个表中查询数据。 你可以在SELECT, UPDATE 和 DELETE 语句中使