MySQL查询之联合查询

       联合查询是可合并多个相似的选择查询的结果集。等同于将一个表追加到另一个表,从而实现将两个表的查询组合到一起

一、语法格式

   select 语句1 union【union选项】 select 语句2

二、说明

union选项:可取两个值all和distinct  

              all--保留结果集中的所有行  

              distinct--去掉结果集中的重复行,默认

 每个 SELECT 语句的列数和对应位置的数据类型必须相同

三、使用

【例】将Sell表中的用户“C0138”的订单和图书编号为' TP.2525'的订单合并

1.实现:查询Sell表中的用户“C0138”的订单的语句

SELECT 订单号,用户号,图书编号,订购册数 FROM  Sell  

    WHERE 用户号='C0138' ;

结果:

+----------+----------+-------------+-------------+

| 订单号  | 用户号 | 图书编号  | 订购册数 |

+----------+----------+-------------+-------------+

|   4        | C0138  | Ts.3035    |         10   |

|   5        | C0138  | TP.2525    |     133    |

|   7        | C0138  | TP.2463    |     43      |

|   8        | C0138  | Ts.3035     |     5        |

+---------+-----------+--------------+------------+

2.实现:查询图书编号为' TP.2525'的订单的语句

SELECT 订单号,用户号,图书编号,订购册数 FROM  Sell  

    WHERE 图书编号='TP.2525' ;

结果:

+---------+----------+------------+-------------+

| 订单号 | 用户号 | 图书编号 | 订购册数 |

+---------+----------+-------------+-------------+

|   1        | C0132 | TP.2525   |     13       |

|   3        | D1963 | TP.2525   |     6         |

|   5        | C0138 | TP.2525   |     133      |

+----------+---------+-------------+--------------+

3.实现:

将上述两个查询结果合并(去除重复行)

SELECT 订单号,用户号,图书编号,订购册数 FROM  Sell  

    WHERE 用户号='C0138'

  union

SELECT 订单号,用户号,图书编号,订购册数 FROM  Sell  

    WHERE 图书编号='TP.2525' ;

结果:

+---------+----------+------------+-------------+

| 订单号 | 用户号 | 图书编号 | 订购册数 |

+---------+----------+------------+-------------+

|   4       | C0138  | Ts.3035  |      10      |

|   5       | C0138  | TP.2525  |      133   |

|   7       | C0138  | TP.2463  |      43     |

|   8        | C0138  | Ts.3035  |      5      |

|   1        | C0132  | TP.2525  |      13    |

|   3        | D1963  | TP.2525  |      6      |

+---------+-----------+------------+-----------+

将上述两个查询结果合并(保留重复行)

SELECT 订单号,用户号,图书编号,订购册数 FROM  Sell  

    WHERE 用户号='C0138'

  union all

SELECT 订单号,用户号,图书编号,订购册数 FROM  Sell  

    WHERE 图书编号='TP.2525' ;

结果:

+---------+----------+-------------+------------+
| 订单号 | 用户号 | 图书编号 | 订购册数 |
+--------+-----------+-------------+-------------+
|      4    | C0138  | Ts.3035   |       10      |
|      5    | C0138  | TP.2525  |      133     |
|      7    | C0138  | TP.2463  |       43      |
|      8    | C0138  | Ts.3035  |        5        |
|      1    | C0132  | TP.2525  |       13      |
|      3    | D1963  | TP.2525  |        6       |
|      5    | C0138  | TP.2525  |      133     |
+---------+----------+------------+--------------+

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值