实例讲解内连接、左连接、右连接、交叉连接、外连接以及全连接

目录


以下为Postgresql实际操作测试数据,主要为了记录总结个人所得,可供大家参考,欢迎大家指出不当之处。

示例表:

表a,表b,表c,修改后的表c(表d)
表a
表b
表c
表d

1.内连接-inner:

数学中的交集,使用比较运算符(= < >)根据每个表共有的列的值匹配两个表中的行
关键字:inner join on
语句
select *(column1,column2,colunmnN)
from 表A
inner join 表B
on
表A.连接字段=表B.连接字段;

实例1:内连接表a和表b

语句:select * from a inner join b on a.a_id = b.b_id;
结果:
在这里插入图片描述

结论:

  1. 根据连接字段ID返回两个表中所有相同字段名、字段值

实例2:内连接表a和表c

语句:select * from a inner join c on a.a_id = c.c_id;
结果:
在这里插入图片描述

实例3:内连接表a和表b,使用“>”号

语句:select * from a inner join b on a.a_id > b.b_id;
结果:
在这里插入图片描述

结论:

  1. 取出表a中一行中的id依次和表b中的每一行的id比较

实例4:内连接表a和表b,使用“<”号

语句:select * from a inner join b on a.a_id < b.b_id;
结果:
在这里插入图片描述

实例5:内连接表a和表b,指定字段显示

语句:select a_id,a_name,a_part,b_name,b_part from a inner join b on a.a_id = b.b_id;
结果:
在这里插入图片描述

实例6:内连接表a和表b,指定字段并命名显示字段

语句:select a_id as id,a_name,a_part,b_name,b_part from a inner join b on a.a_id = b.b_id;
结果:
在这里插入图片描述

总结

只显示根据条件匹配相同的字段值a_id,b_id的行数据
说明:组合两个表中的记录,返回关联字段相符的记录,也就是返回两个表的交集(阴影)部分。
请添加图片描述

2.左连接-left(左外连接)

关键字:left join on / left outer join on
语句
select *(column1,column2,colunmnN)
from 表A
left join 表B
on
表A.连接字段=表B.连接字段;

实例1:左连接表a和表b(左边表-表a,右边表-表b)

语句: Select * from a left join b on a.a_id = b.b_id;
结果:
请添加图片描述

实例2:左连接表a和修改后的表c(表d)

语句: Select * from a left join c on a.a_id = c.c_id;
结果:
请添加图片描述

结论:
只要条件字段值id相同,就会显示所有的行数据,不管其他的字段值是否与之相同。简而言之,只要a_id和c_id值相同,就会显示对应的行数据!!!

实例3:左连接表a和表b,使用“>”号

语句: select *

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值