首页 > 编程知识 正文

linux查询日志命令,oracle中union all用法

时间:2023-05-06 20:12:38 阅读:143892 作者:2410

1 .准备两块表

表a

表b

2 .进行连接查询测试:

(1)交叉连接(笛卡尔乘积) ) ) )。

SELECT * FROM a和b

)2)内部连接

显示内部连接

SELECT a.*,b.* fromainnerjoinbona.age=b.ageb

显示内部连接过滤条件:

SELECT a.*,b.* fromainnerjoinbona.age=b.agebhavinga.age=11

舒适的网络连接:

SELECT * FROM a,b WHERE a.age=b.ageB

的网络内连接筛选结果:

SELECT * FROM a,bwherea.age=b.agebhavinga.age=11

)3)左外部连接:

SELECT a.*,b.* fromaleftjoinbona.age=b.ageb

)4)右外连接:

SELECT a.*,b.* fromarightjoinbona.age=b.ageb

3.Union和unionall

(1) union:消除重复元素

选择* from a

UNION

选择*从b

总结:

union:联合的意思是结合两次以上的查询结果。

要求:两次查询的列数必须一致

推荐:列的类型可以不同,但对于每个查询列,建议您使用相同的类型

来自多个表的数据:在多次sql语句中检索到的列名可以不匹配,这取决于第一条sql语句的列名。

如果从不同语句检索到的行具有完全相同的值,union将合并同一行,最终只保留一行。 这样,union会删除重复的行。

如果不想删除重复的行,请使用union all。

如果子句中有order by,limit,则必须将其括在括号()中。 建议放在所有子句之后。 这意味着对最终合并的结果进行排序或筛选。

) union all保存着重复的要素

UNION ALL和UNION命令大部分相同,但UNION ALL命令列出所有值。

选择* from a

全部合并

选择*从b

总结:

UNION用于组合两个或多个SELECT语句的结果集,并清除表中的所有重复行。

UNION内部的SELECT语句必须具有相同数量的列,列也必须具有相同的数据类型。

此外,每个SELECT语句的列顺序必须相同。

缺省情况下,UNION操作符选择不同的值。 如果允许重复的值,请使用UNION ALL。

如果ALL与UNION一起使用,即UNION ALL,则不会删除重复行

注意:

1、UNION结果集中的列名始终等于第一个SELECT语句中的列名

2、UNION内部的SELECT语句必须具有相同数量的列。 列也需要类似的数据类型。 此外,每个SELECT语句的列顺序必须相同

原文: http://www.cn blogs.com/qlqwjy/p/7837529.html

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。