一.并集:

需求:汇总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探究的更多相关文章

  1. 集合工具类CollectionUtils、ListUtils、SetUtils、MapUtils探究(转)

    之前一直以为集合工具类只有CollectionUtils,主要用它的isEmpty(final Collection<?> coll)静态方法来判断一个给定的集合是否为null或者是否长度 ...

  2. 集合工具类CollectionUtils、ListUtils、SetUtils、MapUtils的使用

    主要用它的isEmpty(final Collection<?> coll)静态方法来判断一个给定的集合是否为null或者是否长度为0.最近才发现此工具类还可以取集合的交集.并集.甚至差集 ...

  3. Commons-Collections 集合工具类的使用

    package com.bjsxt.others.commons; import java.util.ArrayList; import java.util.List; import org.apac ...

  4. 集合工具类 - CollectionUtil.java

    集合工具类,提供数组转LIST.数组转SET.合并集合.计算笛卡儿积等方法. 源码如下:(点击下载 -  CollectionUtil.java.ArrayUtil.java.commons-lang ...

  5. [Guava学习笔记]Collections: 集合工具类

    我的技术博客经常被流氓网站恶意爬取转载.请移步原文:http://www.cnblogs.com/hamhog/p/3861431.html,享受整齐的排版.有效的链接.正确的代码缩进.更好的阅读体验 ...

  6. Collections 集合工具类

    集合工具类  包括很多静态方法来操作集合list 而Collections则是集合类的一个工具类/帮助类,其中提供了一系列静态方法,用于对集合中元素进行排序.搜索以及线程安全等各种操作. 1) 排序( ...

  7. 实用的 集合工具类 和 String工具类

    集合工具类:CollectionUtil method: 1.isNotEmpty() 不为空 2.isEmpty() 为空 举例:map集合         Map<String,String ...

  8. Collections集合工具类,集合嵌套,集合综合案例斗地主

    1 Collections集合工具类 (可以对比Arrays工具类共同记忆) 常用方法: 例: import java.util.ArrayList; import java.util.Collect ...

  9. java之集合工具类Collections

    Collections类简介 java.utils.Collections 是集合工具类,用来对集合进行操作.此类完全由在 collection 上进行操作或返回 collection 的静态方法组成 ...

随机推荐

  1. JS计算字符串长度(中文算2个)

    /** * @return {number} */ getRealLength = function(str) { var realLength = 0, len = str.length, char ...

  2. webapi中使用Route标签

    Prior to Web API 2, the Web API project templates generated code like this: protected void Applicati ...

  3. ev=ev || window.event 与 ev = window.event || ev 区别

    event是事件对象(也是window的属性),但不是标准的,只有IE支持.在W3C标准支持的浏览器下事件对象是引发事件函数的第一个参数,参数名随意.var oEvent = ev || event; ...

  4. Visual Studio 2010/2013 UTF8编码调试时显示中文

    VisualStudio 2010 SP1环境 1.设置string默认编码为utf8,只需要在文件头部加入以下代码 #pragma execution_character_set("utf ...

  5. python 函数/列表的应用

    enumerate 函数用于遍历序列中的元素以及它们的下标: >>> for i,j in enumerate(('a','b','c')): print i,j 0 a1 b2 c ...

  6. SpringMVC集成shrio框架

    使用SHIRO的步骤:1,导入jar2,配置web.xml3,建立dbRelm4,在Spring中配置 添加所需jar包: <!--Apache Shiro所需的jar包--> <d ...

  7. Smarty练习增删改

    <?php //将题目表显示在页面 include("../init.inc.php"); include("../DBDA.php"); $db = n ...

  8. POJ 3347 Kadj Squares (线段覆盖)

    题目大意:给你几个正方形的边长,正方一个顶点在x轴上然后边与x轴的夹角为45度,每个正方形都是紧贴的,问从上面看能看的正方形的编号 题目思路:线段覆盖,边长乘上2防止产生小数,求出每个正方形与x轴平行 ...

  9. HDU2673:shǎ崽 OrOrOrOrz

    Problem Description Acmer in HDU-ACM team are ambitious, especially shǎ崽, he can spend time in Inter ...

  10. Go-file

    两个包具有文件操作的相关方法,一个是os,一个是syscall,其中os中的相关方法是对syscall相关方法的封装,推荐使用os中的相关方法.文件的打开文件的第一步操作实际上是创建,但是由于文件的打 ...