SQL多个查询结果拼接

今天有一个需求,我有三张表,一张学生表,一张教师表,一样辅导员。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

它们都有编号,都有密码,但是字段名不一样,我想一次查询出三张表里面这些编号和密码放在一个查询结果集里面!

我们可以编写三个SQL语句,使用union关键字把查询结果拼接起来。
比如我们单独查询是这样的:

select st_id id,st_password passord from gb_student;
select tea_id id,tea_password passord from gb_teacher;
select te_id id,te_password passord from gb_counselor;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这是三个结果集,我想把它合成一个,这么用

select id, password
from  (select tea_id id,tea_password passwordfrom gb_teacher 
	union select st_id,st_password from gb_student 
	union select te_id,te_password from gb_counselor) t;
<!--外面用一个select包起来的目的是为了在后边可以加where进行条件判断 ,注意t这个别名不能少-->

在这里插入图片描述

完美啊!

总结一下:

除了union可以把多个查询sql的结果集拼接起来,还有一个union all

这两个的区别是:

union是取交集,也就是去除相同的结果,保留一个。
union all是取并集,也就是可能会有相同的结果。

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值