集合工具类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 的静态方法组成 ...
随机推荐
- AOE 网络
1.定义 如果在无向环的带权有向图中 - 用有向边表示一个工程中的活动 - 用边上的权值表示活动的持续时间 - 用顶点表示事件 则这样的有向图叫做用边表示活动的网络,简称AOE网络 AOE在工程方面非 ...
- Lucene基础(2)
上一篇:Lucene基础(1) 一.Lucene术语 Document, Field, Term, Query, Analyzer相信在其中大多数在之前已经理解了...对其中部分概念详细说明 Docu ...
- ASP.NET MVC 实现AJAX跨域请求的两种方法
通常发送AJAX请求都是在本域内完成的,也就是向本域内的某个URL发送请求,完成部分页面的刷新.但有的时候需要向其它域发送AJAX请求,完成数据的加载,例如Google. 在ASP.NET MVC 框 ...
- Openjudge-计算概论(A)-放苹果
描述: 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法.输入第一行是测试数据的数目t(0 <= t < ...
- Openjudge-计算概论(A)-求出e的值
描述: 利用公式e = 1 + 1/1! + 1/2! + 1/3! + ... + 1/n! 求e .输入输入只有一行,该行包含一个整数n(2<=n<=15),表示计算e时累加到1/n! ...
- JavaScript的一些流行的框架
1.Underscore.js 扩展了很多原生js没有的方法,如集合 数组 对象 函数的一些基础和衍生方法,简单实用!2.Backbone.js 前段js代码的一个MVC框架,正在学习来着
- NYOJ-915 +-字符串(贪心)
+-字符串 时间限制:1000 ms | 内存限制:65535 KB 难度:1 描述 Shiva得到了两个只有加号和减号的字符串,字串长度相同.Shiva一次可以把一个加号和它相邻的减号交换. ...
- c# 操作word demo
/// <summary> /// 新创建word /// </summary> /// <param name="fileSaveDirectory" ...
- windows service and process 的关系
1.查询windows 对应的服务 sc query > 1.txt notepad 1.txt 2.查询对应的进程信息 tasklist /m > tasks.txt notepad t ...
- jspl零散知识点
1. 读取配置文件. index.jsp: <body> <% String charset=config.getInitParameter("charset" ...