集合工具类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 的静态方法组成 ...
随机推荐
- 关于Axis 1.4 环境的搭建问题
本来很简单的一个环境搭建问题足足困扰了我一周的时间,所以思来想去还是写一篇博文记录下来,以后就不用那么四处去找资料找例子了,实在是浪费时间 废话不多说 1 首先在MyEclipse下创建WEB PR ...
- LightOJ 1337 F - The Crystal Maze (bfs)
Description You are in a plane and you are about to be dropped with a parasuit in a crystal maze. As ...
- js 有关字符串的函数 以及一些和字符串有关的知识
JS自带函数 concat 将两个或多个字符的文本组合起来,返回一个新的字符串. var a = "hello"; var b = ",world"; var ...
- Python 学习笔记7
今天很残酷,明天很残酷,后天很美好.但绝大多数人会死在明天的路上.只有真正的勇士才能看到后天的太阳! Python学习是枯燥的.但是一定要坚持! 昨天学习了数据结构和模块. 今天学习输入和输出.错误与 ...
- 关于oracle数据库(1)
兼容性的设置 cmd.exe是微软Windows系统的命令行程序,类似于微软的DOS操作系统.cmd.exe是一个16/32位的命令行程序,运行在Windows NT/2000/XP/2003/Vis ...
- C++设计模式-参考资料
设计模式实例讲解: http://www.cnblogs.com/jiese/tag/ http://www.cnblogs.com/wanggary/category/294620.html 设计模 ...
- photoshop cs6 mac版
首选项 -> 界面,调整工作区背景色 放大:command + "+" 放大镜:z 矩形选框工具(M):用来抠图,做造型.shift正方形选取 填充前景色:alt + del ...
- 关于个人网站选择虚拟主机还是VPS服务器的讨论
还记得当初才开始学习建站的时候,选择的第一款虚拟主机是全HTML的主机,那时候的虚拟主机还分为HTML或者是ASP,PHP的都很少,在国内接触的学习较多还是以ASP为主,PHP是最近几年才开始流行.如 ...
- fragement切换动画效果的实现
标准动画: fragementTransaction.setTransition(FragmentTransation.TRANSIT_FRAGMENT_CLOSE); 自定义动画: fragemen ...
- hdu_5769_Substring(后缀数组)
题目链接:hdu_5769_Substring 题意: 给你一个字符a和一个串b,问你有多少个包括a的字串 题解: #include<bits/stdc++.h> #define F(i, ...