常用的SQL多表连接查询

常用的SQL多表连接查询常用的多表查询 a 表 id name b 表 id age 一 横向合并 添加到同一行中 列数增多 1 内联 方法一 用 where 带条件 连接两表 select from a b where a id

大家好,我是讯享网,很高兴认识大家。

常用的多表查询

a表(id,name)
b表(id,age)
在这里插入图片描述
讯享网

一、横向合并

添加到同一行中,列数增多

1. 内联

方法一:用where(带条件)连接两表 select * from a,b where a.id = b.id 方法二:用inner join 表名 on(带条件)连接两表 select * from a inner join b on a.id = b.id 

讯享网

在这里插入图片描述

2. 左联

讯享网左联,顾名思义,以左表为主,右表为辅。(查询出来的行数为左表的行数) 即左表的数据全部查出来,右表的数据拼上去。 (先把a表的数值全部查出来) (b表中,缺少数值时为空,如b表中id为2的这条数据(id,age)数值为空) (b表中,多余的数值没有查出来,如b表中没有id为3的这条数据(id,age)没有查出来) select * from a left join b on a.id = b.id 

在这里插入图片描述

3. 右联

同理,右联,以右表为主,左表为辅。(查询出来的行数为右表的行数) 即右表的数据全部查出来,左表的数据拼上去。 (先把b表的数值全部查出来) (a表中,缺少数值时为空,如a表中id为2的这条数据(id,age)数值为空) (a表中,多余的数值没有查出来,如a表中没有id为3的这条数据(id,age)没有查出来) select * from a right join b on a.id = b.id 

在这里插入图片描述

二、纵向合拼

添加到同一列中,行数增多

讯享网使用union all来拼接(行数增加)(查询出来的字段要相同,如:编号,名字或年龄) select id as 编号, name as 名字或年龄 from a union all select id as 编号, age as 名字或年龄 from b 

在这里插入图片描述

三、笛卡尔积

SQL语句上就是不加上其他的条件,直接把多张表拼起来 总的行数为a表的条数乘上b表的条数(2*2) a表的每一条数据都与b表的每一条数据组合一次 (如查询出来的结构中,小光有18和19两个年龄,小丽也有18和19两个年龄) select * from a,b 

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

小讯
上一篇 2025-02-20 13:10
下一篇 2025-03-08 10:01

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/33070.html