MySQL 联合查询

联合查询:将多次查询(多条select语句), 在记录上进行拼接(字段不会增加)

基本语法:多条select语句构成: 每一条select语句获取的字段数必须严格一致(但是字段类型无关)

语法

Select 语句1

Union [union选项]

Select 语句2

Union选项: 与select选项一样有两个

All: 保留所有(不管重复)

Distinct: 去重(整个重复): 默认的

例如

-- 表一 SELECT * FROM prospect;
+---------+-------+------------------------+
| fname   | lname  | addr     |
+---------+-------+------------------------+
| Peter     | Jones  | 482 Rush St., Apt. 402 |
| Bernice | Smith  | 916 Maple Dr.   |
+---------+-------+------------------------+

-- 表二
 SELECT * FROM customer;
+-----------+------------+---------------------+
| last_name | first_name | address    |
+-----------+------------+---------------------+
| Peterson  | Grace    | 16055 Seminole Ave. |
| Smith      | Bernice  | 916 Maple Dr.  |
| Brown     | Walter   | 8602 1st St.  |
+-----------+------------+---------------------+

-- 表三
 SELECT * FROM vendor;
+-------------------+---------------------+
| company            | street    |
+-------------------+---------------------+
| ReddyParts, Inc. | 38 Industrial Blvd. |
| Parts-to-go, Ltd. | 213B Commerce Park. |
+-------------------+---------------------+

-- 如果所有的三个表具有不同的列名 ,查询方式
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关键字
 SELECT fname, lname, addr FROM prospect
-> UNION ALL
-> SELECT first_name, last_name, address FROM customer
-> UNION
-> SELECT company, ‘‘, street FROM vendor;

联合查询的意义:

1. 查询同一张表,但是需求不同: 如查询学生信息, 男生身高升序, 女生身高降序.

2. 多表查询: 多张表的结构是完全一样的,保存的数据(结构)也是一样的.

Order by使用

在联合查询中: order by不能直接使用,需要对查询语句使用括号才行;

另外,要order by生效: 必须搭配limit: limit使用限定的最大数即可

.

-- 男的按年级正序排序,女的按倒叙排列
(select *from t3 where gender="男" order by age limit 99999)
union
(select *from t3 where gender="女" order by age limit 99999)
时间: 2024-10-16 03:20:03

MySQL 联合查询的相关文章

MySQL联合查询语法内联、左联、右联、全联

MySQL联合查询效率较高,以下例子来说明联合查询(内联.左联.右联.全联)的好处: T1表结构(用户id,用户名,密码)   userid   username  password 1   jack jackpwd    2   owen   owenpwd T2表结构(用户id,用户积分,用户等级)   userid(int)   jifen   dengji     1    20   3       3    50    6 第一:内联( inner join )如果想把用户信息.积分.

【转】Mysql联合查询union和union all的使用介绍

Mysql的联合查询命令UNION和UNION ALL,总结了使用语法和注意事项,以及学习例子和项目例子,需要的朋友可以参考下 一.UNION和UNION ALL的作用和语法 UNION 用于合...... Mysql的联合查询命令UNION和UNION ALL,总结了使用语法和注意事项,以及学习例子和项目例子,需要的朋友可以参考下 一.UNION和UNION ALL的作用和语法 UNION 用于合并两个或多个 SELECT 语句的结果集,并消去表中任何重复行. UNION 内部的 SELECT

Mysql联合查询UNION和UNION ALL的使用介绍

UNION和UNION ALL的作用和语法 UNION 用于合并两个或多个 SELECT 语句的结果集,并消去表中任何重复行.UNION 内部的 SELECT 语句必须拥有相同数量的列,列也必须拥有相似的数据类型.同时,每条 SELECT 语句中的列的顺序必须相同.SQL UNION 语法: SELECT column_name FROM table1UNIONSELECT column_name FROM table2 注释:默认地,UNION 操作符选取不同的值.如果允许重复的值,请使用 U

MySQL联合查询

下面具体讲讲简单的JOIN的用法了.首先我们假设有2个表A和B,他们的表结构和字段分别为: 表A: ID Name 1 Tim 2 Jimmy 3 John 4 Tom 表B: ID Hobby 1 Football 2 Basketball 2 Tennis 4 Soccer 1.  内联结:Select A.Name, B.Hobby from A, B where A.id = B.id,这是隐式的内联结,查询的结果是: Name Hobby Tim Football Jimmy Bask

MySQL联合查询和左关联的区别

我把这个定义为联合查询或者说并查询: 第1种:SELECT a.gbname,b.gcontent FROM tb_goodsbrand a,tb_goods b WHERE a.gbid = b.gbid 结果为: #======================================================================== 我们在用左连接来查询: 第2种:SELECT a.gbname,b.gcontent FROM tb_goodsbrand a LEF

七、mysql联合查询

参考url:https://www.bilibili.com/video/BV12b411K7Zu UNION 联合 合并:将多条查询语句的结果合并成一个结果 语法: 查询语句1 Union 查询语句2 Union ... 应用场景:要查询的结果来自于多个表,且多个表没有直接的连接关系,但查询的信息一致时. 特点: 1) 要求多条查询语句的查询列数是一致的 2) 要求多条查询语句的查询的每一列的类型和顺序最好一致 3) Union关键字默认去重,如果使用union all可以包含重复项 案例:查

MySql联合查询Union

记一条很长的sql,为了方便阅读,我已经加了段落: SELECT * FROM ( (SELECT 1 AS acheck, s1.id, s1.plan_name, s1.cost_mode, s1.sta_type, s1.cost_type, s1.cost_period_time, s1.cost_period_value, s1.`carrier_operator`,s1.cost_settle_type FROM wo_serviceplan s1 JOIN wo_servicepl

mysql 联合查询后update

SELECT a.user_name,a.avatar,a.nicheng,a.user_rank,b.rank_name,b.rank_img FROM ecs_users a , ecs_user_rank b WHERE user_id in(14495) and a.rank_points >= b.min_points and a.rank_points <= b.max_points ; update ecs_users a,ecs_user_rank bset a.user_ra

MySQL的查询,子查询,联结查询,联合查询

一.mysql查询的五种子句where(条件查询).having(筛选).group by(分组).order by(排序).limit(限制结果数) 二.子查询1.where 子查询SELECT * FROM tb1 WHERE cat_id IN (SELECT max(id) FROM tb2 GROUP BY cat_id); 2.from 子查询SELECT t2_id FROM (SELECT t2_id FROM tb2 ORDER BY t2_id DESC); 3.exists