精华内容
下载资源
问答
  • 【注:本文转自 ... 【注意】:Oracle数据库支持full join,mysql是不支持full join的,但仍然可以同过左外连接+ union+右外连接实现 初始化SQL语句: /*join 建表语句*/ drop database if ex...

    【注:本文转自 https://blog.csdn.net/u012410733/article/details/63684663】

     

    【注意】:Oracle数据库支持full join,mysql是不支持full join的,但仍然可以同过左外连接+ union+右外连接实现

    初始化SQL语句:

     
    1. /*join 建表语句*/

    2. drop database if exists test;

    3. create database test;

    4. use test;

    5.  
    6. /* 左表t1*/

    7. drop table if exists t1;

    8. create table t1 (id int not null,name varchar(20));

    9. insert into t1 values (1,'t1a');

    10. insert into t1 values (2,'t1b');

    11. insert into t1 values (3,'t1c');

    12. insert into t1 values (4,'t1d');

    13. insert into t1 values (5,'t1f');

    14.  
    15. /* 右表 t2*/

    16. drop table if exists t1;

    17. create table t2 (id int not null,name varchar(20));

    18. insert into t2 values (2,'t2b');

    19. insert into t2 values (3,'t2c');

    20. insert into t2 values (4,'t2d');

    21. insert into t2 values (5,'t2f');

    22. insert into t2 values (6,'t2a');

    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    1、笛卡尔积

    两表关联,把左表的列和右表的列通过笛卡尔积的形式表达出来。

    mysql> select * from t1 join t2;
    • 1

    这里写图片描述

    2、左连接

    两表关联,左表全部保留,右表关联不上用null表示。

    这里写图片描述

    mysql> select * from t1 left join t2 on t1.id = t2.id;
    • 1

    这里写图片描述

    3、右连接

    右表全部保留,左表关联不上的用null表示。

    这里写图片描述

    mysql> select * from t1 right join t2 on t1.id =t2.id;
    • 1

    这里写图片描述

    4、内连接

    两表关联,保留两表中交集的记录。

    这里写图片描述

    mysql> select * from t1 inner join t2 on t1.id = t2.id;
    • 1

    这里写图片描述

    5、左表独有

    两表关联,查询左表独有的数据。

    这里写图片描述

    mysql> select * from t1 left join t2 on t1.id = t2.id where t2.id is null;
    • 1

    这里写图片描述

    6、右表独有

    两表关联,查询右表独有的数据。

    这里写图片描述

    mysql> select * from t1 right join t2 on t1.id = t2.id where t1.id is  null;
    • 1

    这里写图片描述

    7、全连接

    两表关联,查询它们的所有记录。

    这里写图片描述

    oracle里面有full join,但是在mysql中没有full join。我们可以使用union来达到目的。

     
    1. mysql> select * from t1 left join t2 on t1.id = t2.id

    2. -> union

    3. -> select * from t1 right join t2 on t1.id = t2.id;

    • 1
    • 2
    • 3
    • 这里写图片描述

    8、并集去交集

    两表关联,取并集然后去交集。

    这里写图片描述

     
    1. mysql> select * from t1 left join t2 on t1.id = t2.id where t2.id is null

    2. -> union

    3. -> select * from t1 right join t2 on t1.id = t2.id where t1.id is null;

    • 1
    • 2
    • 3

    这里写图片描述

    展开全文
  • UNION 操作符用于合并两个或多个 SELECT 语句的结果集。 请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。 SQL UNION 语法 ...

    SQL UNION 操作符

    UNION 操作符用于合并两个或多个 SELECT 语句的结果集。

    请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。

    SQL UNION 语法

    SELECT column_name(s) FROM table_name1
    UNION
    SELECT column_name(s) FROM table_name2
    

    注释:默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。

    SQL UNION ALL 语法

    SELECT column_name(s) FROM table_name1
    UNION ALL
    SELECT column_name(s) FROM table_name2
    

    另外,UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名。

    下面的例子中使用的原始表:

    Employees_China:

    E_ID E_Name
    01 Zhang, Hua
    02 Wang, Wei
    03 Carter, Thomas
    04 Yang, Ming

    Employees_USA:

    E_ID E_Name
    01 Adams, John
    02 Bush, George
    03 Carter, Thomas
    04 Gates, Bill

    使用 UNION 命令

    实例

    列出所有在中国和美国的不同的雇员名:

    SELECT E_Name FROM Employees_China
    UNION
    SELECT E_Name FROM Employees_USA
    

    结果

    E_Name
    Zhang, Hua
    Wang, Wei
    Carter, Thomas
    Yang, Ming
    Adams, John
    Bush, George
    Gates, Bill

    注释:这个命令无法列出在中国和美国的所有雇员。在上面的例子中,我们有两个名字相同的雇员,他们当中只有一个人被列出来了。UNION 命令只会选取不同的值。

    UNION ALL

    UNION ALL 命令和 UNION 命令几乎是等效的,不过 UNION ALL 命令会列出所有的值。

    SQL Statement 1
    UNION ALL
    SQL Statement 2
    

    使用 UNION ALL 命令

    实例:

    列出在中国和美国的所有的雇员:

    SELECT E_Name FROM Employees_China
    UNION ALL
    SELECT E_Name FROM Employees_USA
    

    结果

    E_Name
    Zhang, Hua
    Wang, Wei
    Carter, Thomas
    Yang, Ming
    Adams, John
    Bush, George
    Carter, Thomas
    Gates, Bill

    使用 UNION ALL 命令之后还想在对查询结果进行操作的话


    只需要把查询括起来组成派生表
    select * from (你的查询语句) as t where ....
    as t不能漏掉,派生表需要别名

    山西扶贫项目真实实例
    SELECT COUNT(*) ,rea FROM
    (
    	SELECT
    		t.id,
    		t.user_reason,
    		substring_index(t.user_reason, ',', 1) AS rea
    	FROM
    		t_user t
    	WHERE
    		t.is_del = 0
    
    UNION ALL
    
    		SELECT
    			t1.id,
    			t1.user_reason,
    			substring_index(t1.user_reason, ',', - 1) AS rea
    		FROM
    			t_user t1
    		WHERE
    			t1.is_del = 0
    		AND t1.user_reason LIKE "%,%"
    	)
    as t2
    
    GROUP BY rea


    展开全文
  • 主要介绍了mysql select语句操作实例,本文给出了ORDER BY查询、GROUP BY查询、LIMIT查询、UNION等语句的实例,需要的朋友可以参考下
  • UNION操作符用于合并两个或多个SELECT语句的结果集,这里需要注意的是:UNION内部的SELECT语句必须拥有相同数量的 列,列也必须拥有相似的数据类型,同时,每条SELECT语句中列的顺序必须相同。 UNION语法: ...

    UNION操作符用于合并两个或多个SELECT语句的结果集,这里需要注意的是:UNION内部的SELECT语句必须拥有相同数量的

    列,列也必须拥有相似的数据类型,同时,每条SELECT语句中列的顺序必须相同。

    UNION语法:

    SELECT column_name(s) FROM table_name1
    UNION
    SELECT column_name(s) FROM table_name2

    union操作符合并的结果集,不会允许重复值,如果允许有重复值的话,使用UNION ALL.

    UNION ALL语法:

    SELECT column_name(s) FROM table_name1
    UNION ALL
    SELECT column_name(s) FROM table_name2

    UNION结果集中的列名总等于union中第一个select语句中的列名。

    展开全文
  • UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。 select sname as name,ssex as sex,sbirthday as birthday from student UNION SELECT ...

    UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。

    select sname as name,ssex as sex,sbirthday as birthday from student
    UNION
    SELECT tname as name,tsex as sex,tbirthday as birthday from teacher

    展开全文
  • UNIONUNION ALL操作符用于合并两个或多个 SELECT 语句的结果集。从这个角度来看,它们跟 JOIN 有些类似,都可以从多个表中获取信息。 注意的是: UNIONUNION ALL内部的 SELECT 语句必须拥有相同数量的列。列...
  • 本章主要内容:SQL UNION 操作符,SQL SELECT INTO 语句,SQL INSERT INTO SELECT 语句
  • SQL中Union和Join语句非常类似,但是Union有一个限制条件:两个 SQL 语句所产生的栏位需要是同样的资料种类,最后的结果会看到不同的资料值。 格式: [SQL 语句 1] UNION [SQL 语句 2] 例如: 表store_info 和表...
  • 基本select语句分析

    千次阅读 2019-03-14 20:42:11
    SQL提供了SELECT语句进行数据查询,该语句具有灵活的使用方式和丰富的功能 这篇文章主要讲解了基本select语句中各个子句的作用 一般格式: select... (select子句,需要向前端用户展示的数据) from... 1. ...
  • Mysql同时执行多个select语句——union

    万次阅读 热门讨论 2016-08-08 12:53:59
     今天小编在改bug的时候遇到一个既简单又让人头疼的问题,由于底层封装的执行sql语句的方法中没有合适我的,所以我只能在我的D层动手脚了…… 经验 下面来说说我今天的情况:  我们新建一个抽奖活动的时候需要...
  • select查询中union连接符

    千次阅读 2017-09-06 18:37:49
    UNION 运算符将多个 SELECT 语句的结果组合成一个结果集。 (1)使用 UNION 须满足以下条件: A:所有查询中必须具有相同的结构(即查询中的的列数和列的顺序必须相同)。 B:对应列的数据类型可以不同但是...
  • 数据库select语句详解

    千次阅读 2020-10-29 21:47:04
    SELECT 1.基本语法 select * from 表名 查询这张表所有内容。 select 列名 from 表名 查询这张表某一列所有内容。 select 列名1,列名2…from 表名 查询这张表的列1,列2,等多列。 select distinct 列名 from 表名...
  • 有多个where子句的select语句可以作为一个组合查询。 创建组合查询 示例:多条where语句和union实现达到相同效果 先看两个查询 第一个查询出Illinois、Indiana和Michigan三个州(美国)的所有顾客的三项信息 ...
  • sql语句中多个union all的case when优化

    千次阅读 2017-12-12 11:31:27
    select '现场司机' 环节,'劳斯莱斯' 品牌, 'CIQ 直接喂料' 采集项目, count(1) 统计数量 from test_table where 操作人 IN('张三','李四','王五','赵六','钱七') and 操作类型='PDI喂料移车' AND 原库位...
  • Sql合并两个select查询,unionunion all

    千次阅读 2019-04-19 10:23:41
    现有2个查询,需要将每个查询的结果合并起来(注意不是合并结果集,因此不能使用union),可以将每个查询的结果作为临时表,然后再从临时表中select所需的列,示例如下: 创建测试表user_info数据如下: 如上表所...
  • 如果我们需要将两个select语句的结果作为一个整体显示出来,我们就需要用到union或者union all关键字。union(或称为联合)的作用是将多个结果合并在一起显示出来。 unionunion all的区别是,union会自动压缩多个结果...
  • UNION 操作符用于合并两个或多个 SELECT 语句的结果集。 请注意,UNION 内部的每个 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每个 SELECT 语句中的列的顺序必须相同。 SQL UNION 语法...
  • SQL语句 UNIONUNION ALL 用法

    千次阅读 2019-05-14 09:27:48
    1.UNION——操作符用于合并两个或多个 SELECT 语句的结果集。(注:UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。) UNION 语法 ...
  • select union 语句

    千次阅读 2008-12-12 16:29:00
    说明可以在任何组合中、单一 UNION 运算中,合并两个或多个查询、表、及 SELECT 语句的结果。下列示例将名为 New Accounts 的现存表和一个 SELECT 语句合并:TABLE [New Accounts] UNION ALLSELECT *FROM Customers...
  • 将2条select语句进行关联查询

    千次阅读 2018-07-20 21:06:48
    sql: with tmp_tab_1 as ... select f.id ID , f. fund_group_id FUND_GROVP_ID , f. fund_id FUND_ID , f. fund_percent FUND_PERCENT,u. fund_SHORT_NAME , n. status SALE_STATVS from T_...
  • select.union all .where.解决方案

    千次阅读 2017-11-10 01:37:32
    使用union之前一定要知道:UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。 否则出现下面这种错误: 第一种: SELECT a....
  • UNION 操作符用于合并两个或多个 SELECT 语句的结果集。 请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。 SQL UNION 语法 ...
  • select语句(5)--多表查询

    千次阅读 2016-09-17 01:11:31
    多表查询,又称表联合查询,即一条sql语句涉及到的表有多张,数据通过特定的连接进行联合显示. 一、笛卡尔积 在数学中,两个集合X和Y的笛卡尓积(Cartesian product),又称直积,表示为X × Y. 假设集合A={a, b}...
  • sql中select语句详解及用途

    千次阅读 2015-06-02 15:13:08
    SELECT [ ALL | DISTINCT [ ON ( expression [, ...] ) ] ]  * | expression [ AS output_name ] [, ...]  [ FROM from_item [, ...] ]  [ WHERE condition ]  [ GROUP BY expression [, ...] ]  
  • sql语句union的用法

    2021-08-22 22:01:38
    union联合的结果集不会有重复值,如果要有重复值,则使用union all union会自动压缩多个结果集合中重复的结果,使结果不会有重复行,union all 会将所有...select 字段1 from 表名1 Union select 字段2 from 表名2...
  • 了解SELECT语句的基本语法格式和执行方法; 了解连接查询的表示及使用; 掌握嵌套查询的使用的方法; 请使用T-SQL 语句实现进行以下操作 注意:以下所有实验基于该表✈点击前往查看 1. 查询名字中第2个字为‘小’...
  • sql注入中的union select 1,2,3....

    千次阅读 多人点赞 2021-03-15 10:15:17
    用来合并两个或多个 SELECT 语句的结果集。比如这里新建了两个表,users和users2 users表如下 users2如下 联合查询,即查询users表中的name字段的值和查询users2表中的address字段的值,将结果一起返回 ...
  • sql注入-union select

    万次阅读 多人点赞 2019-06-24 19:08:31
    是一种将SQL语句插入或添加到应用(用户)的输入参数中的攻击 这些参数传递给后台的SQL数据库服务器加以解析并执行 哪里存在SQL注入? GET POST HTTP头部注入 Cookie注入 任何客户端可控,传递到服务器的变量,并且...
  • SQL UNION 操作符合并两个或多个 SELECT 语句的结果。 SQL UNION 操作符 UNION 操作符用于合并两个或多个 SELECT 语句的结果集。 请注意,UNION 内部的每个 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的...
  • PostgreSQL 中的 SELECT 语句的用法

    千次阅读 2019-08-05 21:51:52
    SQL语句是不区分大小写的。 SQL language is case insensitive. 按照惯例,我们用大写的形式来写SQL关键字,使得代码更容易阅读。 By convention, we will use SQL keywords in uppercase to make the code ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 136,895
精华内容 54,758
关键字:

select语句union