MySQL:两表取交集、并集、差集「建议收藏」

MySQL:两表取交集、并集、差集「建议收藏」创建两个表:CREATETABLEa_student(idINTNOTNULLPRIMARYKEYAUTO_INCREMENTCOMMENT'主键',sno

大家好,又见面了,我是你们的朋友全栈君。

创建两个表:

CREATE TABLE a_student(
  id INT NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT ‘主键’,
  sno VARCHAR(20) NOT NULL COMMENT ‘学号’,
  sname VARCHAR(20) NOT NULL COMMENT ‘性名’,
  sex TINYINT NOT NULL COMMENT ‘性别 1:男,2:女’,
  sage int COMMENT ‘年龄’,
  CREATE_time datetime DEFAULT NULL COMMENT ‘创建时间’,
  test_time datetime COMMENT ‘测试时间’,
  UPDATE_time datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT ‘更新时间’
);

CREATE TABLE b_student(
  id INT NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT ‘主键’,
  sno VARCHAR(20) NOT NULL COMMENT ‘学号’,
  sname VARCHAR(20) NOT NULL COMMENT ‘性名’,
  sex TINYINT NOT NULL COMMENT ‘性别 1:男,2:女’

);

 添加数据:

a_student:

MySQL:两表取交集、并集、差集「建议收藏」

 b_student:

 MySQL:两表取交集、并集、差集「建议收藏」

查询并集UNION ALL

例1:两表字段相同

SELECT sno,sname FROM a_student
UNION ALL
SELECT sno,sname FROM b_student
MySQL:两表取交集、并集、差集「建议收藏」

例2:两表字段不同

SELECT sno,sname FROM a_student
UNION ALL
SELECT sno,sex FROM b_student

 MySQL:两表取交集、并集、差集「建议收藏」

例3:两表字段数量不一样

SELECT * FROM a_student  UNION ALL
SELECT sno,sname FROM b_student

MySQL:两表取交集、并集、差集「建议收藏」

 例4:两表字段数量不一样

SELECT sno,sname FROM a_stunt
UNION ALL
SELECT sno FROM b_student

MySQL:两表取交集、并集、差集「建议收藏」

 查询并集UNION 

 例1:两表字段不同

SELECT sno,sname FROM a_student
UNION
SELECT sno,sex FROM b_student

MySQL:两表取交集、并集、差集「建议收藏」

结果不明显,新增数据:

a_student:

MySQL:两表取交集、并集、差集「建议收藏」

 例2:两表字段相同,且有重复数据(UNION ALL)

SELECT sno,sname FROM a_student
UNION ALL
SELECT sno,sname FROM b_student

 MySQL:两表取交集、并集、差集「建议收藏」

  例3:两表字段相同,且有重复数据(UNION)

SELECT sno,sname FROM a_student
UNION
SELECT sno,sex FROM b_student

 MySQL:两表取交集、并集、差集「建议收藏」

 总结:去重去的是完全相同的数据,指查询的两个字段值都相同

 

交集INNER JOIN

— INNER JOIN (等值连接) 只返回两个表中联结字段相等的行
— inner join并不以谁为基础,它只显示符合条件的记录.

例1:以a表为主表

SELECT a.*
FROM a_student a
INNER JOIN b_student b
ON a.id=b.id AND a.sname=b.sname;

MySQL:两表取交集、并集、差集「建议收藏」

 例2:以b表为主表

— USING(id,name) 等价于 on后面的条件
SELECT b.* FROM a_student a
INNER JOIN b_student b USING(id,sname)

MySQL:两表取交集、并集、差集「建议收藏」

 

差集:

例1:a-b

SELECT a.*
FROM
a_student a
LEFT JOIN b_student b
ON a.id=b.id AND a.sname=b.sname
WHERE b.id IS NULL

MySQL:两表取交集、并集、差集「建议收藏」

 

 例2:b-a

SELECT b.*
FROM
a_student a
RIGHT JOIN b_student b
ON a.id=b.id AND a.sname=b.sname
WHERE a.id IS NULL

MySQL:两表取交集、并集、差集「建议收藏」

 

补充:

单纯的外连接

例1:右外连接

MySQL:两表取交集、并集、差集「建议收藏」

 

SELECT *
FROM
a_student a
RIGHT JOIN b_student b
ON a.id=b.id AND a.sname=b.sname

MySQL:两表取交集、并集、差集「建议收藏」

 

例2:左外连接

MySQL:两表取交集、并集、差集「建议收藏」

 

SELECT *
FROM
a_student a
LEFT JOIN b_student b
ON a.id=b.id AND a.sname=b.sname

MySQL:两表取交集、并集、差集「建议收藏」

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/154947.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 心血漏洞(OpenSSL升级)[通俗易懂]

    心血漏洞(OpenSSL升级)[通俗易懂]查看系统OpenSSL版本:opensslversion,查看该版本是否存在心血漏洞,受影响版本为:1.0.1—1.0.1f/1.0.2Beta1下载最新的OpenSSL安装包并上传到服务器下载地址:https://www.openssl.org/安装依赖:yuminstall-ygcczlib-develpam-devel开启telnet服务yum-yinstalltelnet-serversed-i”s/yes/no/g”/etc/xine.

  • blurImage做图片模糊处理报错free(): invalid next size[通俗易懂]

    blurImage做图片模糊处理报错free(): invalid next size

  • VMware虚拟机安装详细教程

    VMware虚拟机安装详细教程VMware安装好之后,下载好我们要安装的操作系统的镜像文件后此处安装的为centos7版本需要下载镜像的小伙伴可去我的资源处下载,就可以开始安装了。进入主页选择创建新的虚拟机这里选择自定义安装,下一步即可。可以根据需要选择版本选择完成后,下一步选择安装程序映像文件,浏览到自己下载的镜像文件,下一步即可自定义虚拟机名称,以及虚拟机存储在主机的路径,下一步即可根据需要配置处…

  • 80c51单片机简介_80c51单片机内部结构的组成

    80c51单片机简介_80c51单片机内部结构的组成80C51单片机属于MCS-51系列单片机,由Intel公司开发,其结构是8048的延伸,改进了8048的缺点。增加了如乘(MUL)、除(DIV)、减(SUBB)、比较(CMP)、16位数据指针、布

  • webpack css_web引入css文件

    webpack css_web引入css文件css文件处理-准备工作(以下项目配置都是基于上一篇webpack(4)的基础上)在项目开发中,我们必然需要添加很多的样式,而样式我们往往写到一个单独的文件中。这里我们就在src目录中创建一个n

  • 新手安卓开发详细教程视频_安卓手机解锁激活成功教程教程

    新手安卓开发详细教程视频_安卓手机解锁激活成功教程教程安卓一、安卓工程构建及第一个安卓程序运行一、安卓工程构建及第一个安卓程序运行使用的软件-eclipse(ADT)在PackageExplorer栏右键点击,New→AndroidApplicationProjectApplicationName:在安装到手机上时应用程序显示的名字(例如微信,QQ)ProjectName:在PackageExplorer栏里面显示的工程名字PackageName:包名(包名不能带有中文,会构建失败),大部分都是公司域名的倒

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号