mysql把两个查询的结果合并为⼀个结果_探索SQL-多表查询⼀、表的加法(Union)
1、⽤法:将两个表合并成⼀个表
2、语句:
select
*需保留重复⾏*
select 查询结果
from 从哪张表查询
union all
select 查询结果
from 从哪张表查询
练习:
将课程表及课程表1合并在⼀起
课程表1:
课程表2:
mysql语句多表查询合并结果:
1)不保留重复⾏
2)保留重复⾏
⼆、表的联结
联结:表和表之间是通过列产⽣关系,联结就是通过表和表之间关系将两个表合并在⼀起的操作。
表的联结分为:交叉联结(cross join)、内联结(inner join)、左联结(left join)、右联结(right join)、全联结(full join);内联结、左联结、右联结这3种是较常⽤的联结⽅法。
c语言运算符的含义1、交叉联结(cross join)
将表的每⼀⾏与另⼀个表的每⼀⾏联结在⼀起,⾏数是两个表⾏数的乘积;不常⽤,结果⾏数太多。
2、内联结(inner join)
查出同时存在于两张表的数据。
语句:
<
原码、反码、补码from 表1 as a
inner join 表2 as b
on a.列名=b.列名;
3、左联结(left join)
将左侧的表作为主表,主表中的数据全部读取出来,右边的表只选取与主表有相同列的表。
语句:
<
from 表1 as a
left join 表2 as b
3 tileson a.列名=b.列名;
*在左联结基础上去掉两表共同的部分*
<
数据库学习教材from 表1 as a
left join 表2 as b
on a.列名=b.列名
where b.列名 is null;
4、右联结(right join)
将右表作为主表,主表中的数据全部读取出来,左边的表只选取与主表有相同列的表。语句:
<
from 表1 as a
right join 表2 as b
on a.列名=b.列名;
*在右联结基础上去掉两表共同的部分*
<
from 表1 as a
right join 表2 as b
on a.列名=b.列名
where b.列名 is null;下载app个人所得税
5、全联结(full join)
返回左表和右表中所有的⾏,当某⾏与另⼀表中有匹配的⾏,两⾏会进⾏合并,当某⾏与另⼀表中⽆匹配⾏,另⼀表对应的⾏会填充成空值;mysql不⽀持全联结。
练习:
1、⽤内联结将学⽣和成绩表合并在⼀起
2、⽤左联结将学⽣和成绩表合并在⼀起
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论