如何通过SQL找出2个表里值不同的列的方法

2014-04-24  来源:本站原创  分类:Mysql  人气:1 

本篇文章对如何通过SQL找出2个表里值不同的列的方法进行了详细的分析介绍,需要的朋友参考下

以下有两个表,他们的结构完全相同,请通过SQL找出值不同的列。

Student_1

NAME AGE SCORE
peter 26 100
jack 25 96
daniel 26 48
bark 21 69

Student_2

NAME AGE SCORE
peter 26 89
jack 25 96
daniel 26 48
bark 21 69

方法一 -- NOT EXISTS:

SELECT *
FROM Student_1 S1
WHERE NOT EXISTS
  (SELECT *
  FROM Student_2 S2
  WHERE S1.name = S2.name
  AND S1.age    = S2.age
  AND S1.score  = S2.score
  )
UNION ALL
SELECT *
FROM STUDENT_2 S2
WHERE NOT EXISTS
  (SELECT *
  FROM STUDENT_1 S1
  WHERE S1.name = S2.name
  AND S1.age    = S2.age
  AND S1.score  = S2.score
  );

方法二 -- MINUS

复制代码 代码如下:

(SELECT * FROM Student_1
MINUS
SELECT * FROM Student_2)
UNION ALL
(SELECT * FROM Student_2
MINUS
SELECT * FROM Student_1)

方法三 -- HAVING GROUP BY

复制代码 代码如下:

SELECT DISTINCT name, age, score FROM (
SELECT * FROM Student_1
UNION ALL
SELECT * FROM Student_2
)GROUP BY name, age, score HAVING COUNT(*)=1 ;
相关文章
  • 如何通过SQL找出2个表里值不同的列的方法 2014-04-24

    本篇文章对如何通过SQL找出2个表里值不同的列的方法进行了详细的分析介绍,需要的朋友参考下 以下有两个表,他们的结构完全相同,请通过SQL找出值不同的列. Student_1 NAME AGE SCORE peter 26 100 jack 25 96 daniel 26 48 bark 21 69 Student_2 NAME AGE SCORE peter 26 89 jack 25 96 daniel 26 48 bark 21 69 方法一 -- NOT EXISTS: SELECT *

  • C语言实现找出二叉树中某个值的所有路径的方法 2014-05-08

    这篇文章主要介绍了C语言实现找出二叉树中某个值的所有路径的方法,针对数据结构中二叉树的实用操作技巧,需要的朋友可以参考下 本文实例讲述了C语言实现找出二叉树中某个值的所有路径的方法,是非常常用的一个实用算法技巧.分享给大家供大家参考. 具体实现方法如下: #include <iostream> #include <vector> #include <iterator> #include <algorithm> using namespace std; vec

  • SQL Server中检查字段的值是否为数字的方法 2015-02-04

    这篇文章主要介绍了SQL Server中检查字段的值是否为数字的方法,使用ISNUMERIC函数实现,需要的朋友可以参考下 最近有一个项目,需要检查某个字符型字段的值是否为数字,由于数据行是海量,所以需要通过SQL语句来筛查,这里拿来做个备忘. 用到的函数为IsNumeric,具体语句如下所示: SELECT * FROM 表 WHERE IsNumeric(需要检查的字段名) = 0 ISNUMERIC 确定表达式是否为一个有效的数字类型. 语法 ISNUMERIC ( expression

  • 在Framework 4.0中:找出新增的方法与新增的类(二) 2015-04-09

    为什么动态加载程序集无法找出Framework 4.0 和Framwork2.0 新增的方法和类 问题描述:在Framework 4.0中:找出新增的方法与新增的类(一) 为什么动态加载程序集无法找出Framework 4.0 和Framwork2.0 新增的方法和类? 因为控制台程序默认就添加了Framework4.0的程序集,当你使用Object,Type,string这些类的时候就已经在使用已经加载的程序集了,而clr不会重复的去加载程序集??,这点记不清了.所以V2Assembly 和v

  • SQL语句练习实例之四 找出促销活动中销售额最高的职员 2013-11-07

    你刚在一家服装销售公司中找到了一份工作,此时经理要求你根据数据库中的两张表得到促销活动销售额最高的销售员 ---找出促销活动中销售额最高的职员 ---你刚在一家服装销售公司中找到了一份工作,此时经理要求你根据数据库中的两张表得到促销活动销售额最高的销售员 ---1.一张是促销活动表 ---2.一张是销售客列表 create table Promotions ( activity nvarchar(30), sdate datetime, edate datetime ) insert Promo

  • sql 多条件组合查询,并根据指定类别找出所有最小子类别的SQL语句备忘 2014-12-03

    多条件组合查询,并根据指定类别找出所有最小子类别的SQL语句备忘 DECLARE @PAGESIZE INT DECLARE @PAGEINDEX INT DECLARE @PAGECOUNT INT DECLARE @RECORDCOUNT INT SELECT @PAGESIZE=5 SELECT @PAGEINDEX=1 DECLARE @FIELDNAME VARCHAR(50) DECLARE @FIELDVALUE VARCHAR(50) DECLARE @OPERATION VAR

  • 高性能MySQL读书笔记 找出谁持有锁 2014-07-22

    周末重读了一遍<高性能MySQL>,发现有些知识点看过便忘了,没有实际动手操作一遍就是记不牢,所以今天动手操作了一下"找出谁持有锁",并把实验步骤记录下来,有兴趣的网友可以参照一二. 问题的背景:在实际使用MySQL时,如果访问量比较大,那么很可能会出现大量Locked状态的进程,但是却不能方便的识别是哪条SQL引起的问题,很多人遇到此类问题时,多半是通过PhpMyAdmin查询可疑SQL,然后KILL掉,但问题是可疑SQL可能会很多,这样逐一尝试太过笨拙,有的人一怒之下很

  • sql查询出各科成绩最好的学生信息 2013-10-01

    这篇文章主要介绍了如何使用sql查询出各科成绩最好的学生信息,需要的朋友可以参考下 1.相关数据表 Score表 [User]表 SQL语句如下: --查询出各科成绩最好的学生信息 --自连接 --SELECT TOP 1 * FROM Score B WHERE B.ScoreName = '数学' ORDER BY B.Score DESC SELECT A.ID,U.Name,A.ScoreName,A.Score FROM Score A,[User]U WHERE UID IN (SE

  • PHP中比较两个字符串找出第一个不同字符位置例子 2013-10-14

    这是一个在stackoverflow上的问题. 给出两个长度相等的字符串,找出这两个字符串中第一个不同的字符位置. 一般的做法就会这样: <?php for ($offset = 0; $offset < $length; ++$offset) { if ($str1[$offset] !== $str2[$offset]) { return $offset; } } 而问题下面给出的最佳答案是用异或操作符( ^ ),以前从来没用过这个操作符,也不知道能用到什么地方,今天算是学到. 因为一般情

  • 字符串中找出连续最长的数字字符串的实例代码 2013-10-30

    这篇文章介绍了字符串中找出连续最长的数字字符串的实例代码,有需要的朋友可以参考一下 //1. 写一个函数,它的原形是int continumax(char *outputstr,char *intputstr) //功能: //在字符串中找出连续最长的数字串,并把这个串的长度返回, //并把这个最长数字串付给其中一个函数参数outputstr所指内存. //例如:"abcd12345ed125ss123456789"的首地址传给intputstr后,函数将返回9,outputstr所指

  • 题目60:在200组数据中找出条件为每组中的第二个数大于第一个数加第三个数的之和 2013-12-07

    题目60:在文件in.dat中有200组数据,每组有3个数,每个数均是三位数.函数ReadDat()读取这200组数据存放到结构数组aa中,请编制函数jsSort(),其函数的功能是:要求在200组数据中找出条件为每组中的第二个数大于第一个数加第三个数的之和,其中满足条件的个数作为函数jsSort() 的返回值,同时把满足条件的数据存入结构数组bb中,再对bb中的数据按照每组数据的第二个数加第三个之和的大小进行升序排列(第二个数加第三个数的和均不相等),排序后的结果仍重新存入结构数组bb中,最后

  • 使用正则表达式找出不包含特定字符串的条目 2014-01-24

    今天在写一个功能的时候,需要替换不包含指定字符串的正则,看到了一篇好文章特整理分享下,方便需要的朋友 做日志分析工作的经常需要跟成千上万的日志条目打交道,为了在庞大的数据量中找到特定模式的数据,常常需要编写很多复杂的正则表达式.例如枚举出日志文件中不包含某个特定字符串的条目,找出不以某个特定字符串打头的条目,等等. 使用否定式前瞻 正则表达式中有前瞻(Lookahead)和后顾(Lookbehind)的概念,这两个术语非常形象的描述了正则引擎的匹配行为.需要注意一点,正则表达式中的前和后和我们一

  • IIS 应用程序池 CPU 100% 分析软件,找出具体有问题的ASP程序URL 2014-02-12

    一个 IIS 6.0 / 7.0 服务器上可能存在着100-300个WEB站点,如果其中一个站点的ASP程序设计存在问题,那么将会引起CPU 持续占用100%,从而引起同一个服务器其他站点不能正常工作,或访问缓慢. IIS应用程序池分析软件有什么作用? 一个 IIS 6.0 / 7.0 服务器上可能存在着100-300个WEB站点,如果其中一个站点的ASP程序设计存在问题,那么将会引起CPU 持续占用100%,从而引起同一个服务器其他站点不能正常工作,或访问缓慢. 如果不能快速找出有问题的WEB

  • JavaScript实现找出数组中最长的连续数字序列 2014-02-23

    这篇文章主要介绍了JavaScript实现找出数组中最长的连续数字序列的方法,需要的朋友可以参考下 原始题目: 给定一个无序的整数序列, 找最长的连续数字序列. 例如: 给定[100, 4, 200, 1, 3, 2], 最长的连续数字序列是[1, 2, 3, 4]. 小菜给出的解法: function maxSequence(array,step){ var _array = array.slice(), //clone array _step = 1, _arrayTemp = [], i

  • 找出元凶 Windows关机慢最新原因 2014-02-28

    如果稍加留意,我们便可以看出Windows 2000及其后的操作系统在进行关机前会经过注销.保存用户设置等一系列的操作,需要消耗一定的时间,因此注销速度过于缓慢成了不少用户的心病.其实,很多情况是因为用户配置文件没有及时得到释放所引起的. 一.预备知识--用户配置文件(User Profile) 为了让使用同一台电脑中的多个用户都能拥有自己的个性化设置,微软在Windows 2000/XP/2003中设计了用户配置文件来保存每个用户的设置,当在Windows登录窗口中输入用户名和正确的密码后,W

  • JavaScript实现找出字符串中第一个不重复的字符 2014-04-05

    这篇文章主要介绍了JavaScript实现找出字符串中第一个不重复的字符的方法,需要的朋友可以参考下 此算法仅供参考,小菜基本不懂高深的算法,只能用最朴实的思想去表达. //找出字符串中第一个不重复的字符 // firstUniqueChar("vdctdvc"); --> t function firstUniqueChar(str){ var str = str || "", i = 0, k = "", _char = "&

  • 找出IIS中隐藏网站的方法 2014-05-12

    在进入正题之前,我们先来看一下,入侵者是如何在我们的主机上建立隐藏网站的 打开IIS的管理器->选定一个文件夹->点击鼠标右键->选择"资源管理器",切换到网站的根目录,新建一个文件夹这里取名为"liuqq",接着我们到"x:\windows\system32" (当然这个目录是任意的,其中的x代表系统盘)那里新建一个文件夹取名"liuhack",回到IIS的管理器刷新就会看到,"liuqq&quo

  • 华为面试题答案找出最大长度子字符串 2014-07-16

    找出最大长度子字符串,打印并且返回长度. 例如 str = "abc123abcd234abcdefgha324adsdawqdasdaseqqwe345abchded",看下面的代码实现吧 int findMaxSubstring(char* str) { int maxLength = 0; int maxStartIndex = 0; int curLength = 0; int curStartIndex = 0; bool isFind = 0; for(unsigned i

  • 一个可以找出源代码中所有中文的工具 2014-07-30

    一个可以找出源代码中所有中文的工具 填写需要查找的路径$sf即可. 功能 1 找出所有中文 2 忽略注释语句中的中文 3 可添加需要忽略的文件和文件夹 4 生成日志文件 如果您正发愁为自己的软件更新语言包 请使用此工具. 我的例子: http://127.0.0.1/tools/searchcn.php http://127.0.0.1/tools/cnlog.txt <?php set_time_limit(0); ob_implicit_flush(); //注释格式 $remark = a

  • 题目64:找出所有100以内满足I,I+4,I+10都是素数的整数的个数 2014-08-16

    题目64:下列程序的功能是:找出所有100以内(含100)满足I,I+4,I+10都是素数的整数I(I+10也在100以内)的个数cnt以及这些I之和sum.请编写函数countvalue()实现程序要求,最后调用函数writeDat()把结果cnt和sum输出到文件out.dat中. 注意:部分源程序已给出. 请勿改动主函数main()和函数writeDAT()的内容. -------------- 类型:素数. void countValue() /*标准答案*/ {int I,count=