集合工具类CollectionUtils、ListUtils、SetUtils、MapUtils探究
一.并集:
需求:汇总t1、t2两表的数据
mysql、postgresql、oracle数据库取并集都是用union/union all关键字,不再赘述
二.交集:
需求:选出既在t1表又在t2表的数据
1.mysql数据库取交集,没有对应的关键字,只能把所有要查询的字段都加到where条件上,如下
select t1.name, t1.age from t1, t2 where t1.name = t2.name and t1.age = t2.age //如果t1, t2不是表而只是结果集的话,只需要加上with t1 as(...), t2 as (...)就可以了
2.postgresql/oracle数据库取交集,可以用intersect关键字,如下
select t1.name, t1.age from t1
intersect
select t2.name, t2.age from t2
三.差集:
需求:选出在t1表中但不在t2表中的数据
1.mysql数据库取差集,也没有对应的关键字,有2种方式:
①.用not in
select name, age from t1
where (t1.name, t1.age) not in (select name, age from t2)
注意,where后面字段如果有多个,必须用括号括起来,同时子查询语句也必须用括号括起来
not in这种方式虽然写法简单,但是如果两个表的数据很多的话,那查询起来非常慢
②.用连表查询
sql92:
select t1.name, t1.age from t1
where t1.name != t2.name or t1.age != t2.age
或是
sql99:
select t1.name, t1.age inner join t2
on t1.name != t2.name or t1.age != t2.age
当然,如果t1、t2有多个字段的话,就要一个一个比对,然后用or连接起来
必须用内连接,这点想想左连接和右连接查出的结果集就明白了。
2.postgresql取差集,可以用except关键字,如下:
select t1.name, t1.age from t1
except
select t2.name, t2.age from t2
3.oracle数据库取差集,可以用minus关键字,如下
select t1.name, t1.age from t1
minus
select t2.name, t2.age from t2
集合工具类CollectionUtils、ListUtils、SetUtils、MapUtils探究的更多相关文章
- 集合工具类CollectionUtils、ListUtils、SetUtils、MapUtils探究(转)
之前一直以为集合工具类只有CollectionUtils,主要用它的isEmpty(final Collection<?> coll)静态方法来判断一个给定的集合是否为null或者是否长度 ...
- 集合工具类CollectionUtils、ListUtils、SetUtils、MapUtils的使用
主要用它的isEmpty(final Collection<?> coll)静态方法来判断一个给定的集合是否为null或者是否长度为0.最近才发现此工具类还可以取集合的交集.并集.甚至差集 ...
- Commons-Collections 集合工具类的使用
package com.bjsxt.others.commons; import java.util.ArrayList; import java.util.List; import org.apac ...
- 集合工具类 - CollectionUtil.java
集合工具类,提供数组转LIST.数组转SET.合并集合.计算笛卡儿积等方法. 源码如下:(点击下载 - CollectionUtil.java.ArrayUtil.java.commons-lang ...
- [Guava学习笔记]Collections: 集合工具类
我的技术博客经常被流氓网站恶意爬取转载.请移步原文:http://www.cnblogs.com/hamhog/p/3861431.html,享受整齐的排版.有效的链接.正确的代码缩进.更好的阅读体验 ...
- Collections 集合工具类
集合工具类 包括很多静态方法来操作集合list 而Collections则是集合类的一个工具类/帮助类,其中提供了一系列静态方法,用于对集合中元素进行排序.搜索以及线程安全等各种操作. 1) 排序( ...
- 实用的 集合工具类 和 String工具类
集合工具类:CollectionUtil method: 1.isNotEmpty() 不为空 2.isEmpty() 为空 举例:map集合 Map<String,String ...
- Collections集合工具类,集合嵌套,集合综合案例斗地主
1 Collections集合工具类 (可以对比Arrays工具类共同记忆) 常用方法: 例: import java.util.ArrayList; import java.util.Collect ...
- java之集合工具类Collections
Collections类简介 java.utils.Collections 是集合工具类,用来对集合进行操作.此类完全由在 collection 上进行操作或返回 collection 的静态方法组成 ...
随机推荐
- phpstrom 快捷使用方式
file-settings--key map键映射-->collapse(代码折叠)---- ctrl (减减)2次全部折叠 (加加)2次全部展开 格式化代码 ctrl+alt+L 替换 c ...
- 线索thread二叉树
对于一个普通的二叉树 我们可以很明显的看到,在一个二叉树中,会有许多的空结点,而这些空结点必然会造成空间的浪费,为了解决这个问题,我们可以引入线索二叉树,把这些空结点利用起来,利用 '^' 记录给定结 ...
- chapter 14_1 环境
Lua将其所有的全局变量保存在一个常规的table中,称为“global environment”. Lua将环境table自身保存在一个全局变量_G中,_G._G等于 _G . 比如下面的代码打印出 ...
- MongoDB执行计划分析详解
要保证数据库处于高效.稳定的状态,除了良好的硬件基础.高效高可用的数据库架构.贴合业务的数据模型之外,高效的查询语句也是不可少的.那么,如何查看并判断我们的执行计划呢?我们今天就来谈论下MongoDB ...
- UISwitch 开关控件
UISwitch iOS中的开关控件,只有两种状态,打开或关闭. aSwitch.tintColor = [UIColor redColor]; //关闭状态下的渲染颜色 aSwitch.onTint ...
- Html复杂表头的实现
实现效果 代码实现
- html5学习(二)音频audio
音频格式 当前,audio 元素支持三种音频格式: IE 9 Firefox 3.5 Opera 10.5 Chrome 3.0 Safari 3.0 Ogg Vorbis √ √ √ M ...
- Qt - 设置TableWidget只读
ui->infoViewTW->setEditTriggers(QAbstractItemView::NoEditTriggers); enum QAbstractItemView::Ed ...
- c语言-转义序列
字符组合是由反斜杠 (\) 后接字母或位组合构成的字符组合.若要显示换行符,单引号或某些其他字符在字符串末尾,必须使用转义序列. 转义序列被视为单个字符,因此,它是有效的字符常数. 转义序列通常用于指 ...
- Codeforces Round #364 (Div. 2) D. As Fast As Possible
D. As Fast As Possible time limit per test 1 second memory limit per test 256 megabytes input stand ...