如何通过SQL找出2个表里值不同的列的方法
如何通过SQL找出2个表里值不同的列的方法
发布时间:2016-12-29 来源:查字典编辑
摘要:以下有两个表,他们的结构完全相同,请通过SQL找出值不同的列。Student_1NAMEAGESCOREpeter26100jack2596...

以下有两个表,他们的结构完全相同,请通过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 ;

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新mysql数据库学习
热门mysql数据库学习
编程开发子分类